Hello,明天给各位童鞋们分享JSP,连忙拿出小本子记下来吧!

应用eclipse开发JavaWeb我的项目

为新建Javaweb_yq工作站减少Server实例

window > preference>server>Runtime Environment > add 增加本地tomcat所在装置目录

为我的项目MyJspProject 增加 tomcat和jdk反对

创立好MyJspProject我的项目

为该我的项目增加tomcat和jdk反对。我的项目右键build path add library 退出以下反对:JRE System Library和APache Tomcat

增加jdk是因为tomcat的字节码文件须要在JVM上运行,而jsp须要tomcat/lib中的servlet-api.jar。该jar可将jsp转为servlet

3.部署tomcat

留神:个别倡议 将eclipse中的tomcat与 本地tomcat的配置信息放弃同步:即 将eclipse中的tomcat设置为托管模式。

操作形式是:【第一次】创立tomcat实例之后, 双击,抉择Server Location的第二项

否则默认是将tomcat备份到我的项目中,配置信息是与tomcat独立的。

Jsp

对立字符编码

设置jsp文件的编码,该编码用于Jsp编译成Java文件时,通过jsp文件中的pageEncoding属性设置。

设置浏览器读取jsp文件编码,通过jsp文件中的content属性设置。

个别将上述设置成统一的编码,举荐应用utf-8

文本编码,jsp文件以什么编码模式保留。可有以下三种形式设置:

eclipse全工作站设置。如下:

设置某个我的项目

设置独自文件

Jsp的页面元素
Jsp页面元素包含:HTML、Java代码(也就是嵌套在脚本中的javadiamante)、指令、正文
1.
脚本
<%

局部变量、java语句

%>

2.

<%!

全局变量、定义方法

%>

3.

<%= 输入表达式>

源代码:

f12所看到的:

留神,out.println()不能回车; 要想回车:“”,即out.print()、 <%= %> 能够间接解析html代码。

指令

page指令

language属性:jsp页面应用的脚本语言

import : 导入类

pageEncoding: Jsp 文件翻译成java文件时的编码

contentType:浏览器解析jsp时的编码

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"  import="java.util.Date" %>

正文

html正文<!-- --> ,能够被客户 通过浏览器查看源码 所察看到

java正文// /.../

jsp正文<%-- --%>

Jsp九大内置对象

内置对象即不须要new也能应用的对象。

out 对象

输入对象,向客户端输入内容

request 对象

申请对象;存储“客户端向服务端发送的申请信息”

request对象常见办法:

response 对象

session对象

因为HTTP是无状态连贯,每一次申请的数据都是互相独立且不会被保留的。为解决诸如购物车的问题。引入了cookie和session对象。

application 对象

<%="虚构门路:" + application.getContextPath() +""%>

<%="绝对路径:" +application.getRealPath("/MyJspProject")+"" %>

打印后果:

虚构门路:/MyJspProject

绝对路径:

E:\studydemo\JavaWeb_yq.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyJspProject\MyJspProject

config对象

配置独享,服务器配置信息

page

以后JSP页面对象,相当于Java中的this

exception异样对象

四种范畴对象

范畴由小到大

以上四种对象共有的办法:

留神

以上4个范畴 对象,通过setAttribute() 赋值,通过getAttribute() 获取值

尽量应用范畴小的对象,因为对象范畴越大,造成的性能损耗越大。

申请转发与申请重定向

两种申请形式

申请次要有两种形式,一种是get另一种是post。get形式情景有:表单指定method=“get”、超链接模式(< a href > </ a >)、以及通过地址栏结构蕴含申请参数的链接的形式都属于get形式申请。

区别

get形式的在地址栏显示申请信息,但地址栏显可能包容的内容优先,只有4-5KB。Post申请不会显示在地址栏,其将申请信息搁置在申请体中。

文件上传操作必须应用post申请。

注册小我的项目

register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<form action="show.jsp" method="post">

用户名:<input type="text" name="uname" /><br/>

明码:<input type="password" name="upwd"/><br/>

年龄:<input type="text" name="uage"/><br/>

喜好<br/>

<input type="checkbox" name="uhobbies" value="足球"/>足球、

<input type="checkbox" name="uhobbies" value="篮球"/>篮球、

<input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球<br/>

<input type="submit" value="注册">

</form>

</body>

</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

//设置post申请编码

request.setCharacterEncoding("utf-8") ;

String name = request.getParameter("uname") ;

//name = new String( name.getBytes("gbk") , "utf-8"); get形式批改编码

int age = Integer.parseInt( request.getParameter("uage") ) ;

String pwd = request.getParameter("upwd") ;

String[] hobbies = request.getParameterValues("uhobbies") ;

%>

注册胜利,信息如下:<br/>

姓名:<%=name %><br/>

年龄:<%=age %><br/>

明码:<%=pwd %><br/>

喜好:<br/>

<%

if(hobbies !=null){

for(String hobby :hobbies)

{

out.print(hobby +" ");

}

}

%>

</body>

</html>

注册后果:

若不应用request.setCharacterEncoding(“utf-8”) ,则在输出中文时会呈现乱码。

乱码问题的解决

首先对立申请的编码。

如果是get申请,则能够通过以下形式:

1、批改server.xml。批改tomcat装置目录下的server.xml,增加URIEncoding=“UTF-8”,如下

此种办法一劳永逸。

2、 还有一种比拟鸡肋的形式就是每个变量都通过getBytes取得对应字节流,而后再转为对应编码。

如果是post申请则间接应用:

好啦,明天的文章就到这里,心愿能帮忙到屏幕前迷茫的你们!