理解JSP中的内置对象与request的常用技巧
一、Jsp九个内置对象
(写在jsp脚本中,已经存在不需要创建可以直接使用的对象)
- request:表示一个请求,来自于HttpServletRequest类
- response:表示一次响应,来自HttpServletResponse类
- pageContext:页面的上下文,获取页面信息,来自于PageContext类
- session:表示一次会话(客户端与服务器之间的一次连接),保存用户信息,来自于HttpSession类
- application:,表示当前web应用,是一个全局对象,用于保存用户的共享信息,来自于ServletContext
- config:当前JSP对应的servlet的ServletConfig对象,获取当前servlet信息
- out:向浏览器输出数据,来自于JspWriter对象
- page:当前Jsp的Servlet对象,来自于Servlet类
-
exception:表示Jsp页面的异常,来自于exception类
常用的有request,response,session,application,pagecontext
二、request常用方法
1.String getParameter(String key):获取请求中的参数,并且返回该参数,无参数则显示空
例子:localhost:8080/index?id=10&name=zhangsan,
则requset.getParameter(s:“id”)会返回String类型的10,
requset.getParameter(s:“name”)返回zhangsan。
可以使用类型转化讲String类型的内容转换为int类型
2.void setAttribute(String key,Object value):通过键值对的形式保存数据
Object getAttribute(String key):通过键值对的key获取保存的数据
用于服务器内部的数据传递
例子:
test.jsp使用getParameter从请求中得到key为id的数据
使用requset.setAttribute(s:“number”,id)将数据保存,
使用requset.getRequestDispatcher(“test2.jsp”.forward(request,response))讲这个页面的保存的数据传到test2.jsp
test2.jsp使用requset.getAttribute(“number”)得到test1.jsp传过来的number数据。
用户访问test.jsp并且带一个id=1的参数,test.jsp将请求给了test2.jsp,并且传给test2.jsp一个number=1的参数,最终用户的访问会显示test2.jsp的内容。如果test2.jsp讲内容传给test3.jsp,用户会最终访问test3.jsp
3.RequsetDispatcher getRequsetDispatcher(String path):返回一个requsertDispatcher对象,该对象的forward方法将用于转发请求。
例子如上
4.String[] getParameterValues(String id) :将所有传来的数据中的同名参数变为一个字符串
5.void setCharacterEncoding(String charset):设置编码,指定每个请求的编码,为了防止中文乱码
三:http请求状态码
200:正常
404:资源找不到
400:请求资源不匹配
500:Java程序抛出异常
四:response常用方法
1.sendRediirect(String path):重定向方法,从一个页面转到另一个页面
转发(getRequsetDispatcher)和重定向(sendRediirect)区别:转发是前一个页面将同一个请求传给下一个页面,重定向是让浏览器重新创建一个新的请求到下一个页面,之前的请求关闭
如果两个页面之间需要传值,必须使用转发,不能使用重定向。
例子:用户登陆,如果用户名和密码正确,则跳转到首页(转发,需要传用户名),并且显示用户名,否则重新回到登陆页面(重定向,不需要传数据)
三:session
用户会话介绍:服务器无法识别每一次HTTP请求的出处(不知道来自于哪个终端),他只能接收到一次请求信号,所以可能把这个请求的回应发给其他终端,所以会话技术用于让服务器知道请求来自哪里。
会话:服务器和客户端之间发生的一系列连续的请求和响应的过程。包含打开浏览器进行操作到关闭浏览器的过程。
会话状态:指的是服务器和浏览器在会话过程中产生的状态信息,借助于会话的状态,服务器可以把属于同一次会话的一系列请求和相应关联起来。
实现会话方式:
- session(服务器)
- cookie(浏览器)
属于同一次会话的请求都有同一个相同的标识符(sessionId)
session.getId()即可得到sessionId
常用方法:
- String session.getId():获取sessionId
- void setMaxNactiveInterval(int interval):设置session的失效时间,单位为秒
- int getMaxNactiveInterval():获取当前session的失效时间,有默认失效时间
下一篇: 理解JSP的内置对象和四种作用域