JSP内置对象/Javabean

Jsp内置对象是web容器创建的一组对象。不适用new关键字就可以使用的对象。
JSP中一共预先定义了9个这样的对象,分别为:
request、response、session、application、out、
pagecontext、config、page、exception

Web程序的请求与相应模式:
什么是缓冲区:缓冲区 Buffer ,内存的一块区域用来保存临时数据。
java遇见html---jsp(2)

Request:

java遇见html---jsp(2)
request.setCharacterEncoding(“utf-8”)//解决中文乱码问题,无法解决URL传参中文乱码问题。需要配置tomcat中conf文件下server.xml connector标签中加入属性:URLEncoding=”utf-8”
java遇见html---jsp(2)

response

java遇见html---jsp(2)
java遇见html---jsp(2)
PrintWriter 输出提前于内置out对象。解决问题:在out后强制清除缓存区:out.flush();

Application:

java遇见html---jsp(2)
java遇见html---jsp(2)
java遇见html---jsp(2)
请求转发和请求重定向的区别:
java遇见html---jsp(2)
重定向,其实是两次request:
第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。
例子:
response.sendRedirect(“loginsuccess.jsp”);
请求转发是服务器内部把对一个request/response的处理权,移交给另外一个
对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。传输的信息不会丢失。
例子:RequestDispatcher dis=request.getRequestDispatcher(“loginsuccess.jsp”);
Dis.forward(request,response);
请求重定向是客户器端行为而请求转发是服务器端行为

Session

java遇见html---jsp(2)
java遇见html---jsp(2)
java遇见html---jsp(2)
java遇见html---jsp(2)
Session 表示客户端与服务器的一次对话(实际上是一次特定的时间概念)
保存在服务器内存中
一个用户对应一个session

Session的生命周期:

创建、活动、销毁
java遇见html---jsp(2)
java遇见html---jsp(2)
java遇见html---jsp(2)
除非本次会话的所有页面都关闭后再重新访问某个JSP或者Servlet将会创建新的会话

session.setAttribute(“name”,user);
session.setAttribute(“username”,username); 将后者的username内容放到前者username中并保存起来方便与在其他的页面提取username的值
1.request.setAttribute(“curruser”,curruser)这个方法是将curruser这个对象保存在request作用域中,然后在转发进入的页面就可以获取到你的值,如果你会一些框架的话,那些框架标签也可以获取到,比如struts标签,还有jstl。如果这你都不会的话,那么你可以在jsp页面编写java小脚本来获取:<%User myuser=(User)request.getAttribute(“curruser”)%>,
在jsp页面显示值:<%=myuser.getName()%>。
2.session.setAttribute(“curruser”, curruser)。
这个方法和上面唯一的区别就是作用域,就是在你整个程序启动的时候,如果在session中保存了数据,那么在你这个无论你在哪个页面,在什么时候都可以获取到这个值,全局的,只要你的这个程序是启动的。session默认的过期时间是30分钟,过期无效,可以去修改这个值。

关于两者的作用域:
request的生命周期是request请求域,一个请求结束,则request结束
session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制后,session注销而失效
或是人为使用session.invalidate();使用session失效;
或是关闭浏览器后,session还存在,但是这里已经无法获取session了,过一会它还是失效

Javabean

Javabeans是符合某种特定规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

Javabean的设计原则:
公有类、属性私有、无参的公有构造方法、getter和setter方法

Jsp动作元素:
为请求处理阶段提供信息,动作元素遵循xml元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。
java遇见html---jsp(2)
java遇见html---jsp(2)
jsp:setProperty:
java遇见html---jsp(2)
1.根据表单(form)自动匹配所有的属性:
jsp:useBean id=”myUsers” class=”com.po.Users” scope=”page” /
//初始化useBean对象
jsp:setProperty name=”myUsers” property=”*” /
2.根据表单(form)匹配部分属性:
jsp:setProperty name=”myUsers” property=”username” /
3.与表单(form)无关,手工赋值给属性:
jsp:setProperty name=”myUsers” property=”username” value=”李四” /
4.通过url传参数赋值给属性:
form name=”loginForm” action=”dologin.jsp?mypass=”000000” method=”post”/
jsp:setProperty name=”myUsers” property=”psssword” param=”mypass”/
//显示的密码为000000与用户输入的无关

jsp:getProperty:
作用:获取指定javabean对象的属性值
jsp:getProperty name=”JavaBean实例名” property=”属性名” /
java遇见html---jsp(2)

// ‘<>’均没有表示出来

JavaBean的四个作用域范围
jsp:useBean id=”myUsers” class=”com.po.Users” scope=”application” / //全局范围
java遇见html---jsp(2)

相关文章:

  • 2022-01-19
  • 2021-08-27
  • 2021-05-03
  • 2021-12-02
  • 2021-07-23
  • 2021-06-06
  • 2021-10-28
  • 2021-09-18
猜你喜欢
  • 2021-06-24
  • 2021-10-28
  • 2021-11-20
  • 2021-10-15
  • 2021-06-19
  • 2021-06-11
  • 2022-02-04
相关资源
相似解决方案