0、项目环境的建立:
1.jsp基础知识:
JSP的页面元素:
HTML:
java代码(脚本Scriptlet):
指令:
注释:
1.1.脚本Scriptlet
i.
局部变量、java语句
%>
ii.
全局变量、定义方法
%>
iii.
例子程序:
Insert title hereStringkk= "张三";
out.print(kk);
init();%>
name= "。。java 书。。";
}%>iii.
jsp代码是从上往下依次执行。
打开tomcat,从浏览器访问这段代码的输出如下:
TIPS:
等价于 out.print("输出表达式");
注意前者,最后没有分号;后者最后有分号。
一般而言,修改web.xml、配置文件、java 需要重启tomcat服务,但是如果修改 Jsp\html\css\js ,不需要重启。
out.println()不能回车; 要想回车得加“
”,如out.println("name"+"
"),又如 llo" %>,即out.print(表达式) 和 可以直接解析 【表达式】中的html代码。
1.2.指令
page指令
page指定的属性:
language:jsp 页面使用的脚本语言
import: 导入类
pageEncoding: jsp文件自身编码 jsp ->java
contentType: 浏览器解析jsp的编码
例子:
1.3.注释
html注释 ,可以被客户 通过浏览器查看源码 所观察到
java注释 // /*...*/
jsp注释
1.4.JSP内置对象:
(自带的,不需要new 也能使用的对象。总共有九个,这里介绍两个。)
out: 输出对象,向客户端输出内容
request: 请求对象;存储“客户端向服务端发送的请求信息”
request对象的常见方法:
String getParameter(String name) :根据请求的字段名key (input标签的name属性值) ,返回字段值value (input标签的value属性值)
String[] getParameterValues(String name): 根据请求的字段名key ,返回多个字段值value (checkbox)
void setCharacterEncoding("编码格式utf-8") :设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
getRequestDispatcher("b.jsp").forward(request,response) ; :请求转发 的方式跳转页面 A - > B
ServletContext getServerContext():获取项目的ServletContext对象
2.使用request对象实现注册示例:
2.1、在MyJspProjet/WebContent下新建两个jsp文件:register.jsp 、show.jsp。
小技巧:
右键项目==》new==》other(也可以右键项目后直接ctrl+N,可以打开文件创建向导,可以通过搜索的办法创建想要的文件类型。
register.jsp(注意编码格式,这里统一设置为utf-8):
Insert title here用户名:
密码:
年龄:
爱好:
足球篮球乒乓球
show.jsp(注意编码格式,这里统一设置为utf-8):
Insert title here获得的信息如下:
爱好:
密码:
年龄:
for(Stringtemp:hobbies){
out.print(temp+"
");
}%>
TIPS:
:默认为get方式,也可以显示设置为get/post:get与post请求方式的区别:
a. get方式 在地址栏显示 请求信息 (但是地址栏能够容纳的 信息有限,4-5KB;如果请求数据存在大文件,图片等 会出现地址栏无法容纳全部的数据而出错) ;post不会显示。
b. 文件上传操作,必须是post推荐使用post
2.2、统一request请求的编码 :
get方式请求 如果出现乱码,下面办法来解决:
a.统一每一个变量的 编码 (不推荐)
//new String( 旧编码,新编码);
变量名= new String(变量名.getBytes("iso-8859-1"),"utf-8");
b. 修改server.xml ,一次性的 更改tomcat默认get提交方式的编码 (utf-8),
建议 使用tomcat时, 首先在server.xml中 统一get方式的编码.. URIEncoding="UTF-8"
tomcat7 (默认iso-8859-1)
tomcat8(默认utf-8)
post方式:
在show.jsp中,增加如下:request.setCharacterEncoding("utf-8");