1.第三阶段:

a)页面 jsp 动态化

1、在 html 页面顶行添加 page 指令。
2、修改文件后缀名为:.jsp
3、使用 IDEA 搜索替换.html 为.jsp(快捷键:Ctrl+Shift+R)

b)抽取页面中相同的内容

i. head 中 css、jquery、base 标签
<%
String basePath = request.getScheme()
+ “://“
+ request.getServerName()
+ “:”
+ request.getServerPort()
+ request.getContextPath()
+ “/“;
%>

<%=basePath%>

<base href=”<%=basePath%>”>
<link type=”text/css” rel=”stylesheet” href=”static/css/style.css” >
<script type=”text/javascript” src=”static/script/jquery-1.7.2.js”></script>
QQ截图20220425100118.png
给 login.jsp 添加隐藏域和修改请求地址
QQ截图20220425100344.png
使用反射优化大量 else if 代码
QQ截图20220425100430.png

e)数据的封装和抽取 BeanUtils 的使用

BeanUtils 工具类,它可以一次性的把所有请求的参数注入到 JavaBean 中。
BeanUtils 工具类,经常用于把 Map 中的值注入到 JavaBean 中,或者是对象属性值的拷贝操作。
BeanUtils 它不是 Jdk 的类。而是第三方的工具类。所以需要导包。
1、导入需要的 jar 包:
commons-beanutils-1.8.0.jar
commons-logging-1.1.1.jar
BeanUtils.populate(bean,request.getParameterMap());
2、编写 WebUtils 工具类使用:
WebUtils 工具类:

  1. public class WebUtils {
  2. /**
  3. * 把 Map 中的值注入到对应的 JavaBean 属性中。
  4. * @param value* @param bean
  5. */
  6. public static <T> T copyParamToBean( Map value , T bean ){
  7. try {
  8. System.out.println("注入之前:" + bean);
  9. /**
  10. * 把所有请求的参数都注入到 user 对象中
  11. */
  12. BeanUtils.populate(bean, value);
  13. System.out.println("注入之后:" + bean);
  14. } catch (Exception e) {
  15. e.printStackTrace();
  16. }
  17. return bean;
  18. }
  19. }

10尚硅谷书城项目-第三阶段代码优化_王振国 - 课堂笔记.pdf