自己写框架

大致内容

  • 过滤器实现字符控制:避免乱吗

servlet:就是转发页面(jsp,html)数据,页面跳转。

  • 静态网页和服务器通讯:get post 方法
  • action 写要访问到那个服务器。
  • 该服务器继承HttpServlet 写doPost do
  • doPost 执行后台业务逻辑 :dao取得数据
  • out的缺点:改动不易。
  • jsp:html+java
  • 将servlet的业务在jsp中执行。
  • servlet 处理业务逻辑和页面转发 jsp 显示数据 mvc的设计模式
  • jsp/html serlvet:控制层 业务层
  • jsp更方便的显示数据。eg:显示对象,集合(用c标签)。
  • el表达式显示对象
  • 一个request相当于一个请求,下次在请求数据不在啦。
  • 解决方法:通过request新建session,再把数据放在session里面。

el表达式显示对象

1
2
3
4
5
//在jsp中通过键值对取到对象。
User user=(User)request.getAttribute("user");//这句可以不要 你在控制写好键值对就行
user.getName()//通过request得到对象 通过对象方法取得数据
//直接用
${user.name}

显示集合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//在控制层取到数据放入List<User> users=new List<>();
//把容器放在request里面
//在jsp添加c标签库 引入依赖才能用c标签
//user是集合放的单个对象
<c:forEach items="$users" var="user">
${user.name}
</c:forEach>
//显示表格
<table>
<c:forEach items="$users" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>.....</td>
<td>.....</td>
<td><form action="delServlet" method="Post">
<input tpye="hidden" name="userid" value="${user.id}"/>
<button tpye="submit">删除</button>

</form></td>

//另一种方式
<td><a>

</tr>
</c:forEach>

</table>

菜单根据权限显示

  • 用c标签 选择性的显示。
1
2
3
<c:test="${1>2}">
东西显示不出来
</c>

一个request相当于一个请求,下次在请求数据不在啦。

  • 解决方法:通过request新建session,再把数据放在session里面。
  • 登录对象,菜单对象
1
2
3
4
5
HttpSession session=request.getSession();
- session.addAttribute("sessionusers",users);

//在其他页面 通过sessionusers获得对象
${sessionuser.name}

全局对象 sesrvletContext对象

  • 不管谁访问 都可以改 共jihe同拥有。
1
request.getServletContext();

实操

表单提交的本质(springboot/ssm框架都对以下内容进行啦封装,用注解直接就可以实现)

  • 通过action指定访问的服务器
  • 通过POST方法发出请求
  • doPOST方法中获取页面发来的模型层信息
  • 将通过DAO从数据库取到的对象/集合 赋给request.addAttribute(“users”,users) 建立键值对
  • 返回到请求页面。通过键值对访问到对象
  • 重点:键值对