JSP工作原理阐述
当请求的时候,网络容器会将jsp解析,这个时候一个jsp就相等于一个servlet(这个servlet是网络容器写的),网络容器打包发布项目的时候,就会将 jsp发布成一个类,里面所有的东西都会变成Java代码,然后通过servlet实例中的jspService方法,把内容返回。
在这里插入图片描述
java里面写html 简单一句话就是
jsp是动态网页
一、JSP小脚本
在这里面<% %>写就是告诉解析器我这里面的是Java代码
<%= “sds”%>相当于out.write(“sds”)
<%
if (3>4){
%>
<% out.print(session.getAttribute(“name”));%>
当转发上述jsp时
使用request.getRequestDispatcher或者session都可以拿到内容
req.setAttribute(“name”,“haha”);
//通过转发,可以用session和request都可以 req.getRequestDispatcher(“index.jsp”).forward(req,resp);
或者
HttpSession session = req.getSession();
session.setAttribute(“name”,“haha”);
req.getRequestDispatcher(“index.jsp”).forward(req,resp);
当重定向到上述jsp时
可以使用session,不能使用request。
因为重定向其实相当于发起了两次请求,而request是当前用户本次请求,重定向时它把内容放在第一次请求,而在第二次请求中什么内容也没有,因此在jsp中拿不到值。
session只要链接没断开,就可以拿到内容。
//使用重定向到jsp中时需要session才能过去拿到值
HttpSession session = req.getSession();
session.setAttribute(“name”,“haha”);
resp.sendRedirect(“index.jsp”);