web
EL表达式
EL表达式:expression language 表达式语言,主要是从作用域中获取值
格式:${}
JSTL标签库:jsp页面中的标签库(c标签)
- 解读标签
- fmt标签转年月日
- 先将数据设置到作用域
String name=request.getParameter("user");
String pass=request.getParameter("pass");
//将name的值设置到作用域
request.setAttribute("u",name);
//将对象设置到作用域中
User user=new User();
user.setName(name);
request.setAttribute("user",user);
//将集合添加到作用域中
List<User> list=new ArrayList<User>();
list.add(user);
request.setAttribute("list",list);
//转发
request.getRequestDispatcher("index.jsp").forward(request, response);
- 获取作用域中的数据
//获取name的值
<h1>
${u }//u指的是request设置作用域的名字
</h1>
<h2>
${requestScope.u}
</h2>
//获取user对象的name/pass值
<h1>
${user.pass}
</h1>
<h1>
${user.name}
</h1>
<h1>
${user["name"]}
</h1>
//获取集合的值 //要重写toString方法
<h1>
${list }
</h1>
//获取集合中第一条数据(user对象)中的name属性值
<h1>
${list[0].name}
</h1>
JSTL
//items属性:表示要遍历的对象(集合)
//var属性:表示遍历出来的内容
//varStatus属性:相当于是循环中i变量,可以用啦获取循环的次数
//相当于->fro(User user:list){}
<c:forEach items="${list}" var="users" varStatus="status">
<p>
用户名:${users.name}
</p>
<p>
密码:${users.pass}
</p>
<p>
当前用户序号:${status.count}
</p>
</c:forEach>
//选择
//c:when 当...什么时候
//c:otherwise 否则
<c:choose>
<c:when test="${user.pass=='123'}">
密码正确
</c:when>
<c:otherwise>
密码不正确
</c:otherwise>
</c:choose>
servlet
- 创建servlet文件
servlet:server applet->服务连接器
作用:servlet本身是不做任何业务处理的,只负责接收get或者post请求,然后决定去到哪个页面(转发/重定向)
-
面试题:servlet的生命周期
- 实例化 ->(构造方法)
- 初始化 ->(赋值->init方法)
- 处理请求 ->(doGet/doPost ->--service方法)
- 销毁 ->(destroy方法)
-
servlet的使用需要在web.xml中配置
//找到指定的servlet文件(java类) <servlet> //servlet的名字,为了让另一对servlet-mapping能通过该名字找到指定的java类 <servlet-name>loginServlet</servlet-name> //表示servlet的java类所在的位置 <servlet-class>servlet.LoginServlet</servlet-class> </servlet> //servlet的映射标签 <servlet-mapping> //servlet的名字,对应servlet标签中的name <servlet-name>loginServlet</servlet-name> //前端表单提交action属性中的路径名 <url-pattern>/login</url-pattern> </servlet-mapping>