jsp可以写java代码,连数据库,读取数据
html只能写不能变的东西
JSP中9个隐式对象
隐式对象(或隐含变量):在JSP当中我们没有手动声明创建,但实际存在,可以直接使用的对象。
finaljavax.servlet.jsp.PageContext pageContext;javax.servlet.http.HttpSession session=null;finaljavax.servlet.ServletContext application;finaljavax.servlet.ServletConfig config;javax.servlet.jsp.JspWriterout=null;finaljava.lang.Object page=this;// 还有request和response以及exception对象,一共9个
①request:客户端的请求信息被封装在request对象中,通过它才能了解用户的需求,然后做出响应
②response:包含了响应客户请求的有关信息,但在JSP中使用很少
③pageContext:页面的上下文,是PageContext的一个对象,可以从该对象中获取到其他8个隐含对象,也可以获取到当前页面的其他信息
④session:指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,知道客户端与服务器断开连接为止
⑤application:代表当前web应用,是ServletContext对象,能实现用户间数据的共享,可存放全局变量,它开始于服务器的启动,直到服务器的关闭,在此期间,此对象一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命周期
⑥config:当前JSP对应的Servlet的ServletConfig对象,可获取该Servlet的初始化参数(开发时基本不用),需要通过映射的地址才可以。
⑦out:JspWriter对象,调用out.println()可以直接把字符串打印到浏览器上
⑧page:page对象就是指向当前JSP页面本身,类型为Object,有点类似于类中的this,几乎不使用
⑨exception:该对象是一个例外对象,只有页面是一个错误页面,即isErrorPage设置为true的时候(默认为false)才能使用,否则无法编译。
WEB-INF下的目录,全被保护起来,访问会出现404
EL表达式
语法
EL 语法很简单,它最大的特点就是使用上很方便。接下来介绍 EL 主要的语法结构
${requestAttr}
${user.sex}
这个
和
request.setAttribute("user_name",user);//将user存到request对象里了,相当于键值对,根据user_name就可以在jsp网页中写${user_name}来获取user中的内容
一样的
重定向:
Status Code: 302 Found 302表示重定向的意思
MVC设计模式(转发)
作用域小,优先级大
HttpSession httpSession = request.getSession();
httpSession.setAttribute("user","lisi");
request.setAttribute("user","zhangsan");
request.getRequestDispatcher("user.jsp").forward(request,response);
在网页中会显示出zhangsan ,不是因为代码顺序,而是因为优先级