Severlet、Tomcat以及前端请求响应学习笔记
一:概念
1.什么是Severlet和Tomcat?
Severlet是Sun公司制定的一套标准。是使用java语言编写的服务器端程序,用于处理请求-响应模式下的web服务。而Tomcat则是实现了这一套标准,用于实际处理web请求。它是一种Severlet容器。
2 . 重定向与请求转发的区别
重定向:由浏览器发起请求到服务器端Severlet容器,该容器负责处理请求,当请求处理后,响应需要重定向时,会向浏览器返回302响应码以及重定向的URL,浏览器收到该响应后,再次请求重定向的URL。
请求转发:由浏览器发起请求到服务器端Severtlet容器,该容器负责处理请求,当请求常用业务处理后,若需要其他处理,则由该容器将后续处理请求发送给另一个组件做响应处理,并由该组件响应请求,将响应发回给浏览器端。
如:在登陆页面中,当浏览器端提交数据后,发送登陆请求到服务器,服务器端Tomcat判断登陆用户名密码错误后:
重定向方式:Tomcat重定向一个新的URL,该URL页面包含用户提示信息。并且响应码为302,浏览器接收到响应后,发送请求到新的URL;
请求转发方式:Tomcat将失败的后续处理交给一个新的组件,比如JSP,由JSP组件负责展示新的页面以及提示信息给浏览器端,由浏览器端展示页面及提示信息。
二:代码编写
1.重定向
response.sendRedirecte("xxx.jsp");
2 .请求转发
#转发之前,绑定数据,将想要交给下一个组件(jsp)处理的数据,绑定到request对象中
request.setAttribute("login_Msg","用户名或密码错误");
#获取转发器
RequestDispatcher rd=request.getRequestDispatcher("xx.jsp");
#开始转发
rd.forward(request,response);
随后,在jsp文件中编写java代码,在jsp文件中不需要获取request对象,可直接使用。
<%
String login_msg = (String)request..getAttribute("login_Msg");
%>
<!--java表达式,如果有值,则为转发回来的,可正常显示,如果是空,则显示""
<span><%=login_msg==null ?"":login_msg %></span>
三.jsp中包含的9个隐含对象
隐含对象可直接使用,不需要获取。
1.out:相当于response.getWriter()获取的对象,用于在页面中显示信息;
2.config:对应于Severlet中的SeverletConfig对象;
3.page(Object):对应当前Severlet对象,实际上就是this;
4.pageContext:当前页面的上下文,也是一个域对象;
5.exception(Throwable):错误页面中异常对象;
6.request(HttpSeverletRequest):HttpSeverletRequest对象;
7.response(HttpSeverletResponse):HttpSeverletResponse对象;
8.application(SeverletContext):SeverletContext对象;
9.session(HttpSession):HttpSession对象;