69期-Java SE-045_JSP-2
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了69期-Java SE-045_JSP-2,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5685字,纯文字阅读大概需要9分钟。
内容图文
![69期-Java SE-045_JSP-2](/upload/InfoBanner/zyjiaocheng/1093/43657908ada84ecaa123c11f84ec2ee2.jpg)
### JSP Servlet+JSP Servlet 主要负责完成与客户端的数据交互,提供业务数据。 JSP 负责视图层的展示工作。 Servlet 接收到客户端请求,根据具体的需求完成相关业务,同时将业务数据传给 JSP,JSP 对业务数据进行解析。 JSP HTML 页面中可以嵌入 Java 代码。 1、JSP 脚本 ```java < % Java 代码 % > ``` 2、JSP 声明 ```java < %! 声明一个全局方法 % > ``` 3、JSP 表达式 ```java < %=Java 变量% > ``` ### JSP 内置对象 request、response、pageContext、session、application、config、out、page、exception 常用的 pageContext、request、response、session、application request: - String getParameter(String key) - void setAttribute(String key,Object value) - Object getAttribute(String key) - void setCharacterEncoding(String charset) - String[] getParameterValues(String key) - RequestDispatcher getRequestDispatcher(String path) response: - sendRedirect(String path) //重定向 转发表示将同一个请求在服务端进行转移,相当于你给客服打电话,客服将你的电话转接给售后。 重定向表示让客户端发送一个新的请求来访问跳转之后的页面,相当于你给客户打电话,客服给你一个新的电话号码,让你给新号码打电话。 转发的特点是地址栏的 URL 不变,因为是同一次请求,服务器跳转,在服务端完成资源的跳转。 重定向的特点是地址栏的 URL 会发生改变,因为是两次不同的请求,客户端跳转,相当于从客户端发起一次新的请求。 重定向的弊端在于 request 中保存的数据无法读取,因为重定向是两次不同的请求,意味着 request 是两个不同的对象。 ### 会话 为什么要有会话? 服务端可以接收若干个客户端请求,但是服务端无法识别每一次 HTTP 请求是从哪个客户端发送来的,它只会接收到一个请求信号。 所以需要一种技术来区分不同的客户端,这个技术就是会话。 会话:就是客户端和服务端之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。 举例:会话就相当于打电话的过程,拿起电话拨通号码进行对话,直到挂掉电话的整个操作过程,就是一次会话。 会话状态指服务端和客户端在会话过程中产生的状态信息,借助于会话状态,服务端能够把属于同一次会话的一系列请求和响应过程关联起来。 实现会话机制有两种解决方案 - session - cookie 服务端同时接收大量的客户端请求,如何来区分哪些请求来自于同一个会话?能识别出来自同一个客户端的访问请求,这就需要客户端对其发出的每个请求进行标识,属于同一个会话中的请求都有相同的标识号,这就是 sessionID。 session 常用方法: - String getId() //获取sessionID - void setMaxInactiveInterval(int interval) //设置 session 失效时间,单位是秒 - int getMacInactiveInterval() //获取 session 时间 - void setAttribute(String key,Object value) //在 session 中以键值对的形式存储数据 - Object getAttribute(String key) //通过 key 值获取 session 中保存的数据 - void removeAttribute(String key) //通过 key 值移除 session 中保存的数据 实际开发中,普通的业务数据传递一般选择 request,需要结合转发完成资源的跳转。登录成功之后的用户信息,一般选择 session,无论是转发还是重定向,没有区别,都可以从 session 中取出数据。
index.jsp
<% @ page import = " java.util.Map " %> <% @ page import = " java.util.Set " %> <% @ page import = " java.util.Arrays " %> <% @ page import = " java.util.Enumeration " %><% -- Created by IntelliJ IDEA. User: southwind Date : 2019 - 07 - 07 Time : 20 : 10 To change this template use File | Settings | File Templates. -- %> <% @ page contentType = " text/html;charset=UTF-8 " language = " java " %> < html > < head > < title >$Title$</title></head><body><%String username = request.getParameter("username"); String password = request.getParameter("password"); if(username.equals("zhangsan")&&password.equals("123")){ request.setAttribute("name",username); // response.sendRedirect("welcome.jsp"); request.getRequestDispatcher("welcome.jsp").forward(request,response); }else{ request.setAttribute("error","用户名或密码错误"); // response.sendRedirect("login.jsp"); request.getRequestDispatcher("login.jsp").forward(request,response); } %><h1>index</h1></body></html>
login.jsp
<% -- Created by IntelliJ IDEA. User: southwind Date : 2019 - 07 - 07 Time : 20 : 48 To change this template use File | Settings | File Templates. -- %> <% @ page contentType = " text/html;charset=UTF-8 " language = " java " %> < html > < head > < title >Title</title></head><body><%Stringerror= (String) request.getAttribute("error"); if(error!=null){ out.write(error); } %><form action="index.jsp"><table><tr><td>用户名:</td><td><input type="text" name="username"/></td><td>密码:</td><td><input type="password" name="password"/></td><td><input type="submit" value="登录"/></td></tr></table></form></body></html>
session.jsp
<% -- Created by IntelliJ IDEA. User: southwind Date : 2019 - 07 - 07 Time : 21 : 39 To change this template use File | Settings | File Templates. -- %> <% @ page contentType = " text/html;charset=UTF-8 " language = " java " %> < html > < head > < title >Title</title></head><body><% session.setAttribute("name","session"); request.setAttribute("name","request"); response.sendRedirect("test.jsp"); %></body></html>
test.jsp
<% -- Created by IntelliJ IDEA. User: southwind Date : 2019 - 07 - 07 Time : 20 : 32 To change this template use File | Settings | File Templates. -- %> <% @ page contentType = " text/html;charset=UTF-8 " language = " java " %> < html > < head > < title >Title</title></head><body><h1>test</h1><%String requestName = (String) request.getAttribute("name"); String sessionName = (String) session.getAttribute("name"); %> requestName<%=requestName%><br/> sessionName<%=sessionName%></body></html>
welcome.jsp
<% -- Created by IntelliJ IDEA. User: southwind Date : 2019 - 07 - 07 Time : 20 : 48 To change this template use File | Settings | File Templates. -- %> <% @ page contentType = " text/html;charset=UTF-8 " language = " java " %> < html > < head > < title >Title</title></head><body><%String name = (String) request.getAttribute("name"); %> 欢迎回来~!<%=name%></body></html>
web.xml
<? xml version="1.0" encoding="UTF-8" ?> < web-app xmlns ="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version ="4.0" > </ web-app >
原文:https://www.cnblogs.com/HiJackykun/p/11182688.html
内容总结
以上是互联网集市为您收集整理的69期-Java SE-045_JSP-2全部内容,希望文章能够帮你解决69期-Java SE-045_JSP-2所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。