网 上 书 城

第三阶段:动态书城的开始及局部优化

1. 将所有HTML页面改为JSP页面

  • 复制一份BookStore02,重命名为BookStore03,仅此还不够!还需要在BookStore03工程上右键→Properties→搜索Web→单机Web Project Settings→修改Context root为BookStore03。
  • 在每一个HTML页面的第一行添加JSP的page指令:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,然后将HTML页面的文件扩展名改为jsp,即将.html改为.jsp。注意:一定要先在HTML页面中添加jsp指令再修改扩展名,否则页面中会出现乱码现象。

  • 动态获取base标签

<base href="<%=request.getScheme() %>://<%=request.getServerName() %>:<%=request.getServerPort() %><%=request.getContextPath() %>/">

  • 获取http:getScheme()
  • 获取服务器名:getServerName()
  • 获取端口号:getServerPort()
  • 获取项目虚拟路径:getContextPath()
  • 将每个页面都使用的那些重复的部分使用JSP指令中的include指令进行静态包含。
  • 创建一个base.jsp页面,删除除page指令之外的所有内容;将base标签和link标签复制到base.jsp页面中
  • 为了不让用户能够直接访问jsp页面,在WEB-INF下创建一个include目录,将base.jsp页面放入该目录中。

2. 显示错误消息及表单回显

  • 登录、注册失败时我们分别转发到了登录、注册页面,但是并没有给用户一个错误消息,用户体验差,现在我们分别为登录、注册失败时提供一个错误消息并在页面显示:
    • 登录、注册失败时我们将错误消息放到request域中,通过转发将错误消息带到登录、注册页面,然后在页面中通过request域对象获取错误消息。
  • 登录、注册失败时我们输入的用户名等信息会被清空,为了让用户有更好的体验,让用户看到之前输入的内容,需要对表单进行回显:
    • 给需要回显的表单项设置value属性,value值通过getParameter("属性值")来获取。