使用Eclipse开发Web项目(JSP)——简单登录、无sql_简单_前端开发者

1.使用Eclipse开发web项目(JSP) tomcat

1.使用Eclipse开发web项目(JSP) tomcat tomcattomcat

2.在Eclipse中创建的web项目:

2.在Eclipse中创建的web项目:

浏览器可以直接访问webContent中的文件

浏览器可以直接访问webContent中的文件

例如http://localhost:8080/MyJspProject/index1.jsp

例如http://localhost:8080/MyJspProject/index1.jsphttp://localhost:8080/MyJspProject/index1.jsphttp://localhost:8080/MyJspProject/index1.jsp

其中的index1.jsp就在WebContent目录中;

其中的index1.jsp就在WebContent目录中;

但是web-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问

但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问

注意:并不是任何的内部跳转都能访问WEB-INF;原因是跳转有两种方式:请求转发、重定向

注意:并不是任何的内部跳转都能访问WEB-INF;原因是跳转有两种方式:请求转发、重定向

3.配置tomcat运行时环境

3.配置tomcat运行时环境

jsp <->Servlet

jsp <->Servlet

a.将tomcat/lib中的servlet-api.jar加入项目的构建路径(只加一个)

a.将tomcat/lib中的servlet-api.jar加入项目的构建路径(只加一个)

b.右键项目 -> Build Path -> Add library – Server Runtime(加一堆jar)【推荐】

b.右键项目 -> Build Path -> Add library – Server Runtime(加一堆jar)【推荐】

4.部署tomcat

4.部署tomcat

在servers面板新建一个tomcat实例,再在该实例中部署项目(右键-add)

在servers面板新建一个tomcat实例,再在该实例中部署项目(右键-add)

注意:一般建议将eclipse中的tomcat与本地tomcat保持一致;

注意:一般建议将eclipse中的tomcat与本地tomcat保持一致;

将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例之后,双击,选择Server Location的第二个

将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例之后,双击,选择Server Location的第二个

5.统一字符集编码

5.统一字符集编码

a.编码分类:

a.编码分类:

设计jsp文件的编码(jsp文件中的pageEncodeing属性):jsp -> java

设计jsp文件的编码(jsp文件中的pageEncodeing属性):jsp -> java

设置浏览器读取jsp文件的编码(jsp文件中content属性)

设置浏览器读取jsp文件的编码(jsp文件中content属性)

一般将上述设置成一致的编码,推荐使用UTF-8

一般将上述设置成一致的编码,推荐使用UTF-8

b.文本编码:

b.文本编码:

i.将整个Eclipse中的文件统一设置(以后的jsp编码都会utf-8)【推荐】

i.将整个Eclipse中的文件统一设置(以后的jsp编码都会utf-8)【推荐】

ii.设置某一项目(右键文件-properties)

ii.设置某一项目(右键文件-properties)

iii.设置单独文件

iii.设置单独文件

6.JSP的页面元素

6.JSP的页面元素

html java代码(脚本Scriptlet) 指令 注释

html java代码(脚本Scriptlet) 指令 注释html java代码(脚本Scriptlet) 指令 注释html java代码(脚本Scriptlet) 指令 注释 java代码(脚本Scriptlet) 指令 注释java代码(脚本Scriptlet) 指令 注释 指令 注释指令 注释 注释注释

a.脚本Scriptlet

a.脚本Scriptlet

i.

i.

1 <%
2     局部变量、java语句
3 %>
1 <%
2     局部变量、java语句
3 %>

1<%2 局部变量、java语句
3%>

ii.

ii.

1 <%!
2     全局变量、定义方法
3 %>
1 <%!
2     全局变量、定义方法
3 %>

1<%!
2 全局变量、定义方法
3%>

iii.

iii.

1 <%=
2     输出表达式
3 %>
1 <%=
2     输出表达式
3 %>

1<%=2 输出表达式
3%>

修改web.xml、配置文件、java需要重启tomcat服务,但是如果修改Jsp/html/js/css代码不需要重启

修改web.xml、配置文件、java需要重启tomcat服务,但是如果修改Jsp/html/js/css代码不需要重启

注意:out.println()不能回车;要想回车:<br\>,即out.print() <%= %>可以直接解析html代码

注意:out.println()不能回车;要想回车:<br\>,即out.print() <%= %>可以直接解析html代码<br\>,即out.print() <%= %>可以直接解析html代码<br\>,即out.print() <%= %>可以直接解析html代码 <%= %>可以直接解析html代码<%= %>可以直接解析html代码<%= %>可以直接解析html代码

b.指令

b.指令

page指令

page指令

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8" import="java.util.Date"%>
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8" import="java.util.Date"%>

1<%@ page language=java contentType=text/html; charset=UTF-82 pageEncoding=UTF-8 import=java.util.Date%>

属性:

属性:

language:jsp页面使用的脚本语言

language:jsp页面使用的脚本语言

import:导入类

import:导入类

pageEnconding:jsp文件自身编码 jsp -> java

pageEnconding:jsp文件自身编码 jsp -> java jsp -> javajsp -> java

contentType:浏览器解析自身的编码

contentType:浏览器解析自身的编码

c.注释

c.注释

html注释

html注释

1 <!--可以被客户通过浏览器查看源码所观察到-->
1 <!--可以被客户通过浏览器查看源码所观察到-->

1<!–可以被客户通过浏览器查看源码所观察到–>

java注释

java注释

1 //
2 /*...*/
1 //
2 /*...*/

1//
2

jsp注释

jsp注释

1 <%--    --%>
1 <%--    --%>

1<%%>

7.JSP九大内置对象

7.JSP九大内置对象

(自带,无需new也能使用的对象)

(自带,无需new也能使用的对象)(自带,无需new也能使用的对象)

out:输出对象,向客户端输出内容

out:输出对象,向客户端输出内容

request:请求对象;存储“客户端向服务端发送的请求消息“

request:请求对象;存储“客户端向服务端发送的请求消息“

request对象的常见方法:

request对象的常见方法:

String getParameter(String name); 根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性)

String getParameter(String name); 根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性) 根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性)根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性)

String[] getParameterValues(String name); 根据请求的字段名key,返回多个字段值value(checkbox)

String[] getParameterValues(String name); 根据请求的字段名key,返回多个字段值value(checkbox) 根据请求的字段名key,返回多个字段值value(checkbox)根据请求的字段名key,返回多个字段值value(checkbox)

void setCharacterEncoding(“编码格式utf-8”); 设置post请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改成了utf-8)

void setCharacterEncoding(“编码格式utf-8”); 设置post请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改成了utf-8) 设置post请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改成了utf-8)设置post请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改成了utf-8)

getRequestDispartcher(“b.jsp”).forward(request,response); 请求转发的方式跳转页面 A -> B

getRequestDispartcher(“b.jsp”).forward(request,response); 请求转发的方式跳转页面 A -> B 请求转发的方式跳转页面 A -> B请求转发的方式跳转页面 A -> B A -> BA -> B

ServletContext getServerContext(); 获取项目的ServletContext对象

ServletContext getServerContext(); 获取项目的ServletContext对象 获取项目的ServletContext对象获取项目的ServletContext对象

示例:注册

示例:注册

register.jsp

register.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="show.jsp">
11         用户名:<input type="text" name="uname"/><br/>
12&nbsp;&nbsp;&nbsp;码:<input type="password" name="upwd"/><br/>
13&nbsp;&nbsp;&nbsp;龄:<input type="text" name="uage"/><br/>
14&nbsp;&nbsp;&nbsp;好:<br/>
15         <input type="checkbox" name="uhobbies" value="足球"/>足球
16         <input type="checkbox" name="uhobbies" value="篮球"/>篮球
17         <input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球<br/>
18         <input type="submit" value="注册">
19     </form>
20 </body>
21 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="show.jsp">
11         用户名:<input type="text" name="uname"/><br/>
12&nbsp;&nbsp;&nbsp;码:<input type="password" name="upwd"/><br/>
13&nbsp;&nbsp;&nbsp;龄:<input type="text" name="uage"/><br/>
14&nbsp;&nbsp;&nbsp;好:<br/>
15         <input type="checkbox" name="uhobbies" value="足球"/>足球
16         <input type="checkbox" name="uhobbies" value="篮球"/>篮球
17         <input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球<br/>
18         <input type="submit" value="注册">
19     </form>
20 </body>
21 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<form action=”show.jsp”>11<input type=”text” name=”uname”/><br/>12&nbsp;&nbsp;&nbsp;<input type=”password” name=”upwd”/><br/>13&nbsp;&nbsp;&nbsp;<input type=”text” name=”uage”/><br/>14&nbsp;&nbsp;&nbsp;<br/>15<input type=”checkbox” name=”uhobbies” value=”足球”/>足球
16<input type=”checkbox” name=”uhobbies” value=”篮球”/>篮球
17<input type=”checkbox” name=”uhobbies” value=”乒乓球”/><br/>18<input type=”submit” value=”注册”>19</form>20</body>21</html>

show.jsp

show.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         //设置编码
12         request.setCharacterEncoding("utf-8");
13         String name = request.getParameter("uname");
14         int age = Integer.parseInt(request.getParameter("uage"));
15         String pwd = request.getParameter("upwd");
16         
17         String[] hobbies = request.getParameterValues("uhobbies");
18     %>
19     注册成功,信息如下:<br/>
20     姓名:<%=name %><br/>
21     年龄:<%=age %><br/>
22     密码:<%=pwd %><br/>
23     <%
24         if(hobbies !=null){     //控制没有爱好则不显示
25             out.print("爱好:");
26             for(String hobby:hobbies){
27                 out.print(hobby + "&nbsp;");
28             }
29         }
30     %>
31 </body>
32 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         //设置编码
12         request.setCharacterEncoding("utf-8");
13         String name = request.getParameter("uname");
14         int age = Integer.parseInt(request.getParameter("uage"));
15         String pwd = request.getParameter("upwd");
16         
17         String[] hobbies = request.getParameterValues("uhobbies");
18     %>
19     注册成功,信息如下:<br/>
20     姓名:<%=name %><br/>
21     年龄:<%=age %><br/>
22     密码:<%=pwd %><br/>
23     <%
24         if(hobbies !=null){     //控制没有爱好则不显示
25             out.print("爱好:");
26             for(String hobby:hobbies){
27                 out.print(hobby + "&nbsp;");
28             }
29         }
30     %>
31 </body>
32 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<%11//设置编码
12 request.setCharacterEncoding(utf-8);
13String name = request.getParameter(uname);
14int age =Integer.parseInt(request.getParameter(uage));
15String pwd = request.getParameter(upwd);
1617String[] hobbies = request.getParameterValues(uhobbies);
18%>19<br/>20<%=name %><br/>21<%=age %><br/>22<%=pwd %><br/>23<%24if(hobbies !=null){ //控制没有爱好则不显示
25 out.print(爱好:);
26for(String hobby:hobbies){
27 out.print(hobby +&nbsp;);
28 }
29 }
30%>31</body>32</html>

http://localhost:8080/MyJspProject/show.jsp?uname=zs&upwd=abc&uage=22&uhobbies=%E7%AF%AE%E7%90%83&uhobbies=%E4%B9%92%E4%B9%93%E7%90%83

http://localhost:8080/MyJspProject/show.jsp?uname=zs&upwd=abc&uage=22&uhobbies=%E7%AF%AE%E7%90%83&uhobbies=%E4%B9%92%E4%B9%93%E7%90%83http://localhost:8080/MyJspProject/show.jsp?uname=zs&upwd=abc&uage=22&uhobbies=%E7%AF%AE%E7%90%83&uhobbies=%E4%B9%92%E4%B9%93%E7%90%83

连接/文件?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3

连接/文件?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3

get提交方式:method=”get”和地址栏、超链接(<a href="xx">)请求方式默认都属于get提交方式

get提交方式:method=”get”和地址栏、超链接(<a href="xx">)请求方式默认都属于get提交方式<a href="xx">)请求方式默认都属于get提交方式<a href="xx">)请求方式默认都属于get提交方式

get与post请求方式的区别:

get与post请求方式的区别:

a.get方式在地址栏显示请求信息(但是地址栏能够容纳的信息有限,4-5KB;如果请求数据存在大文件)

a.get方式在地址栏显示请求信息(但是地址栏能够容纳的信息有限,4-5KB;如果请求数据存在大文件)

b.文件上传操作,必须是post【推荐】

b.文件上传操作,必须是post【推荐】

response:响应对象

response:响应对象

提供的方法:

提供的方法:

void addCookie(Cookie cookie); 服务端向客户端增加cookie对象

void addCookie(Cookie cookie); 服务端向客户端增加cookie对象 服务端向客户端增加cookie对象服务端向客户端增加cookie对象

void sendRedirect(String location) throws IOException; 页面跳转的一种方式(重定向)

void sendRedirect(String location) throws IOException; 页面跳转的一种方式(重定向) 页面跳转的一种方式(重定向)页面跳转的一种方式(重定向)

void setContentType(String type);设置服务端响应的代码(设置服务端的contentType类型)

void setContentType(String type);设置服务端响应的代码(设置服务端的contentType类型)

示例:登录

示例:登录

login.jsp -> check.jsp -> success.jsp

login.jsp -> check.jsp -> success.jsp

login.jsp

login.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="check.jsp" method="post">
11         用户名:<input type="text" name="uname"><br/>
12         密码:<input type="password" name="upwd"><br/>
13         <input type="submit" value="登录"><br/>
14     </form>
15 </body>
16 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="check.jsp" method="post">
11         用户名:<input type="text" name="uname"><br/>
12         密码:<input type="password" name="upwd"><br/>
13         <input type="submit" value="登录"><br/>
14     </form>
15 </body>
16 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<form action=”check.jsp” method=”post”>11<input type=”text” name=”uname”><br/>12<input type=”password” name=”upwd”><br/>13<input type=”submit” value=”登录”><br/>14</form>15</body>16</html>

check.jsp

check.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         request.setCharacterEncoding("utf-8");
12         String name = request.getParameter("uname");
13         String pwd = request.getParameter("upwd");
14         if(name.equals("zs")&&pwd.equals("abc")){
15             //通过重定向跳转,结果导致数据丢失
16             //response.sendRedirect("success.jsp");
17             //请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
18             request.getRequestDispatcher("success.jsp").forward(request, response);
19         }else{
20             //登录失败
21             out.print("用户名或密码错误!");
22         }
23     %>
24 </body>
25 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         request.setCharacterEncoding("utf-8");
12         String name = request.getParameter("uname");
13         String pwd = request.getParameter("upwd");
14         if(name.equals("zs")&&pwd.equals("abc")){
15             //通过重定向跳转,结果导致数据丢失
16             //response.sendRedirect("success.jsp");
17             //请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
18             request.getRequestDispatcher("success.jsp").forward(request, response);
19         }else{
20             //登录失败
21             out.print("用户名或密码错误!");
22         }
23     %>
24 </body>
25 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<%11 request.setCharacterEncoding(utf-8);
12String name = request.getParameter(uname);
13String pwd = request.getParameter(upwd);
14if(name.equals(zs)&&pwd.equals(abc)){
15//通过重定向跳转,结果导致数据丢失
16//response.sendRedirect(success.jsp);
17//请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
18 request.getRequestDispatcher(success.jsp).forward(request, response);
19 }else{
20//登录失败
21 out.print(用户名或密码错误!);
22 }
23%>24</body>25</html>

success.jsp

success.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     登陆成功!<br/>
11     欢迎您:
12     <%
13         String name = request.getParameter("uname");
14         out.print(name);
15     %>
16 </body>
17 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     登陆成功!<br/>
11     欢迎您:
12     <%
13         String name = request.getParameter("uname");
14         out.print(name);
15     %>
16 </body>
17 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<br/>11 欢迎您:
12<%13String name = request.getParameter(uname);
14 out.print(name);
15%>16</body>17</html>

请求转发和重定向的区别

请求转发和重定向的区别

  请求转发 重定向
地址栏是否改变 不变(check.jsp) 改变(success.jsp)
是否保留第一次请求时的数据 保留 不保留 –4种范围对象
请求的次数 1 2
跳转发生的位置 服务端 客户端发起的第二次跳转
  请求转发 重定向   请求转发 重定向   请求转发

请求转发请求转发

重定向

重定向重定向

地址栏是否改变 不变(check.jsp) 改变(success.jsp) 是否保留第一次请求时的数据 保留 不保留 –4种范围对象 请求的次数 1 2 跳转发生的位置 服务端 客户端发起的第二次跳转 地址栏是否改变 不变(check.jsp) 改变(success.jsp) 地址栏是否改变

地址栏是否改变地址栏是否改变

不变(check.jsp)

不变(check.jsp)不变(check.jsp)

改变(success.jsp)

改变(success.jsp)改变(success.jsp)

是否保留第一次请求时的数据 保留 不保留 –4种范围对象 是否保留第一次请求时的数据

是否保留第一次请求时的数据是否保留第一次请求时的数据

保留

保留保留

不保留 –4种范围对象

不保留 –4种范围对象不保留 –4种范围对象

请求的次数 1 2 请求的次数

请求的次数请求的次数

1

11

2

22

跳转发生的位置 服务端 客户端发起的第二次跳转 跳转发生的位置

跳转发生的位置跳转发生的位置

服务端

服务端服务端

客户端发起的第二次跳转

客户端发起的第二次跳转客户端发起的第二次跳转

转发、重定向:

转发、重定向:

转发:张三(客户端) -> 【服务窗口A(服务器) -> 服务窗口B】

转发:张三(客户端) -> 【服务窗口A(服务器) -> 服务窗口B】

重定向:张三(客户端) -> 服务窗口A(服务端) -> 去找B

重定向:张三(客户端) -> 服务窗口A(服务端) -> 去找B

张三(客户端) ->服务窗口B(服务端) -> 结束

张三(客户端) ->服务窗口B(服务端) -> 结束张三(客户端) ->服务窗口B(服务端) -> 结束

session(服务端,内置对象)

session(服务端,内置对象)

Cookie(客户端,不是内置对象):

Cookie(客户端,不是内置对象):

Cookie是由服务端生成的,再发给客户端保存

Cookie是由服务端生成的,再发给客户端保存

相当于本地缓存的作用:客户端(hello.jsp)->服务端(hello.mp4;zs/abc)

相当于本地缓存的作用:客户端(hello.jsp)->服务端(hello.mp4;zs/abc)本地缓存的作用:客户端(hello.jsp)->服务端(hello.mp4;zs/abc)本地缓存的作用:客户端(hello.jsp)->服务端(hello.mp4;zs/abc)

作用:提高访问服务器的效率,但是安全性较差。

作用:提高访问服务器的效率,但是安全性较差。

Cookie:key=value

Cookie:key=value

javax.servlet.http.Cookie

javax.servlet.http.Cookie

public Cookie(String name,String value)

public Cookie(String name,String value)

String getName() 获取name

String getName() 获取name 获取name获取name

String getValue() 获取value

String getValue() 获取value 获取value获取value

void setMaxAge(int expiry); 最大有效期(s)

void setMaxAge(int expiry); 最大有效期(s) 最大有效期(s)最大有效期(s)

服务器准备Cookie:

response.addCookie(Cookie cookie)

页面跳转(转发、重定向)

客户端获取Cookie:request.getCookies();

服务器准备Cookie:

服务器准备Cookie:

response.addCookie(Cookie cookie)

response.addCookie(Cookie cookie)

页面跳转(转发、重定向)

页面跳转(转发、重定向)

客户端获取Cookie:request.getCookies();

客户端获取Cookie:request.getCookies();

a.服务端增加Cookie:response对象;客户端获取对象:request对象

a.服务端增加Cookie:response对象;客户端获取对象:request对象

b.不能直接获取某一个单独对象,只能一次性将全部的Cookie拿到

b.不能直接获取某一个单独对象,只能一次性将全部的Cookie拿到

通过F12可以发现,除了自己设置的Cookie对象外,还有一个name为JSESSIONID的cookie

建议cookie中只保存英文、数字,否则需要进行编码、解码处理

使用Cookie实现记住用户名操作

通过F12可以发现,除了自己设置的Cookie对象外,还有一个name为JSESSIONID的cookie

通过F12可以发现,除了自己设置的Cookie对象外,还有一个name为JSESSIONID的cookie

建议cookie中只保存英文、数字,否则需要进行编码、解码处理

建议cookie中只保存英文、数字,否则需要进行编码、解码处理

使用Cookie实现记住用户名操作

使用Cookie实现记住用户名操作

login.jsp

login.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%!
11         String uname;
12     %>
13     <%
14         Cookie[] cookies = request.getCookies();
15         for(Cookie cookie:cookies){
16             if(cookie.getName().equals("uname")){
17                 uname = cookie.getValue();
18             }
19         }
20     %>
21     <form action="check.jsp" method="post">
22         用户名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"><br/>
23         密码:<input type="password" name="upwd"><br/>
24         <input type="submit" value="登录"><br/>
25     </form>
26 </body>
27 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%!
11         String uname;
12     %>
13     <%
14         Cookie[] cookies = request.getCookies();
15         for(Cookie cookie:cookies){
16             if(cookie.getName().equals("uname")){
17                 uname = cookie.getValue();
18             }
19         }
20     %>
21     <form action="check.jsp" method="post">
22         用户名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"><br/>
23         密码:<input type="password" name="upwd"><br/>
24         <input type="submit" value="登录"><br/>
25     </form>
26 </body>
27 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<%!
11String uname;
12%>13<%14 Cookie[] cookies = request.getCookies();
15for(Cookie cookie:cookies){
16if(cookie.getName().equals(uname)){
17 uname = cookie.getValue();
18 }
19 }
20%>21<form action=”check.jsp” method=”post”>22<input type=”text” name=”uname” value=”<%=(uname==null?”“:uname)%><br/>23<input type=”password” name=”upwd”><br/>24<input type=”submit” value=”登录”><br/>25</form>26</body>27</html>

check.jsp

check.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         request.setCharacterEncoding("utf-8");
12         String name = request.getParameter("uname");
13         String pwd = request.getParameter("upwd");
14         
15         //将用户名加入到Cookie中
16         //Cookie cookie = new Cookie("key","value");
17         Cookie cookie = new Cookie("uname",name);
18         response.addCookie(cookie);
19         
20         response.sendRedirect("result.jsp");
21         
22         /* if(name.equals("zs")&&pwd.equals("abc")){
23             //通过重定向跳转,结果导致数据丢失
24             //response.sendRedirect("success.jsp");
25             //请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
26             request.getRequestDispatcher("success.jsp").forward(request, response);
27         }else{
28             //登录失败
29             out.print("用户名或密码错误!");
30         } */
31     %>
32 </body>
33 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <%
11         request.setCharacterEncoding("utf-8");
12         String name = request.getParameter("uname");
13         String pwd = request.getParameter("upwd");
14         
15         //将用户名加入到Cookie中
16         //Cookie cookie = new Cookie("key","value");
17         Cookie cookie = new Cookie("uname",name);
18         response.addCookie(cookie);
19         
20         response.sendRedirect("result.jsp");
21         
22         /* if(name.equals("zs")&&pwd.equals("abc")){
23             //通过重定向跳转,结果导致数据丢失
24             //response.sendRedirect("success.jsp");
25             //请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
26             request.getRequestDispatcher("success.jsp").forward(request, response);
27         }else{
28             //登录失败
29             out.print("用户名或密码错误!");
30         } */
31     %>
32 </body>
33 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10<%11 request.setCharacterEncoding(utf-8);
12String name = request.getParameter(uname);
13String pwd = request.getParameter(upwd);
1415//将用户名加入到Cookie中
16//Cookie cookie =new Cookie(key,value);
17 Cookie cookie =new Cookie(uname,name);
18 response.addCookie(cookie);
1920 response.sendRedirect(result.jsp);
2122/*if(name.equals(zs)&&pwd.equals(abc)){
23//通过重定向跳转,结果导致数据丢失
24//response.sendRedirect(success.jsp);
25//请求转发跳转:可以获取到数据,并且地址栏没有改变(仍然保留转发时的页面)
26 request.getRequestDispatcher(success.jsp).forward(request, response);
27 }else{
28//登录失败
29 out.print(用户名或密码错误!);
30 } */31%>32</body>33</html>

result.jsp

result.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     仅供测试使用
11 </body>
12 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     仅供测试使用
11 </body>
12 </html>

1<%@ page language=java contentType=text/html; charset=UTF-8 2 pageEncoding=UTF-8%> 3<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> 4<html> 5<head> 6<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″> 7<title></title> 8</head> 9<body>10 仅供测试使用
11</body>12</html>

pageContext(后面讲)

pageContext(后面讲)

application(后面讲)

application(后面讲)

config(后面讲)

config(后面讲)

page(后面讲)

page(后面讲)

exception(后面讲)

exception(后面讲)

8.统一请求的编码request

8.统一请求的编码request

get方式请求

get方式请求

如果出现乱码的解决方法:

如果出现乱码的解决方法:

a.统一改每一个变量的编码

a.统一改每一个变量的编码

new String(旧编码,新编码)

new String(旧编码,新编码)

1 name = new String(name.getBytes("iso-8859-1"),"utf-8")
1 name = new String(name.getBytes("iso-8859-1"),"utf-8")

1

b.修改server.xml,一次性的更改tomcat默认get提交方式的编码(utf-8)

b.修改server.xml,一次性的更改tomcat默认get提交方式的编码(utf-8)

建议使用tomcat时,首先在server.xml中统一get方式的编码

建议使用tomcat时,首先在server.xml中统一get方式的编码

1 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
2 <!--添加URIEncoding="UTF-8"以后所有的get方式都是utf-8-->
1 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
2 <!--添加URIEncoding="UTF-8"以后所有的get方式都是utf-8-->

1<Connector connectionTimeout=”20000″ port=”8080″ protocol=”HTTP/1.1″ redirectPort=”8443″ URIEncoding=”UTF-8″/>2<!–添加URIEncoding=”UTF-8″以后所有的get方式都是utf-8–>

post方式请求

post方式请求

1 <%
2     //设置编码
3     request.setCharacterEncoding("utf-8");
4 %>
1 <%
2     //设置编码
3     request.setCharacterEncoding("utf-8");
4 %>

1<%2//设置编码
3 request.setCharacterEncoding(utf-8);
4%>

tomcat7(iso-8859-1)

tomcat7(iso-8859-1)

tomcat8(utf-8)

tomcat8(utf-8)

 

 

» 本文来自:前端开发者 » 《使用Eclipse开发Web项目(JSP)——简单登录、无sql_简单_前端开发者》
» 本文链接地址:https://www.rokub.com/73730.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!