文章目录
第九节 业务功能:批复奏折
1、本质
提交表单,更新数据。
2、WorkServlet 方法
protected void feedBack(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取表单提交的请求参数
String memorialsId = request.getParameter("memorialsId");
String feedbackContent = request.getParameter("feedbackContent");
// 执行更新
memorialsService.updateMemorialsFeedBack(memorialsId, feedbackContent);
// 重定向回显示奏折列表页面
response.sendRedirect(request.getContextPath() + "/work?method=showMemorialsDigestList");
}
3、MemorialsService 方法
@Override
public void updateMemorialsFeedBack(String memorialsId, String feedbackContent) {
memorialsDao.updateMemorialsFeedBack(memorialsId, feedbackContent);
}
4、MemorialsDao 方法
@Override
public void updateMemorialsFeedBack(String memorialsId, String feedbackContent) {
String feedbackTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String sql = "update t_memorials set memorials_status=2,feedback_content=?,feedback_time=? where memorials_id=?";
update(sql, feedbackContent, feedbackTime, memorialsId);
}
第十节 业务功能:登录检查
1、流程图
images
2、创建 LoginFilter
①创建 Java 类
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 1、获取 HttpSession 对象
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpSession session = request.getSession();
// 2、尝试从 Session 域获取已登录的对象
Object loginEmp = session.getAttribute(ImperialCourtConst.LOGIN_EMP_ATTR_NAME);
// 3、判断 loginEmp 是否为空
if (loginEmp != null) {
// 4、若不为空则说明当前请求已登录,直接放行
filterChain.doFilter(request, servletResponse);
return ;
}
// 5、若为空说明尚未登录,则回到登录页面
request.setAttribute("systemMessage", ImperialCourtConst.ACCESS_DENIED_MESSAGE);
request.getRequestDispatcher("/").forward(request, servletResponse);
}
@Override
public void destroy() {}
}
②注册
把 LoginFilter 放在 TransactionFilter 前面声明,原因是:如果登录检查失败不放行,直接跳转到页面,此时将不必执行 TransactionFilter 中的事务操作,可以节约性能。
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.atguigu.imperial.court.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/work</url-pattern>
</filter-mapping>
第十一节 打包部署
1、适配部署环境
MySQL 连接信息中,IP 地址部分需要改成 localhost。
images
url=jdbc:mysql://localhost:3306/db_imperial_court
2、跳过测试打包
mvn clean package -Dmaven.test.skip=true
可以人为指定最终 war 包名称:
<!-- 对构建过程进行自己的定制 -->
<build>
<!-- 当前工程在构建过程中使用的最终名称 -->
<finalName>demo-me</finalName>
</build>
3、部署执行
①上传 war 包
[略]
②启动 Tomcat
/opt/apache-tomcat-8.5.75/bin/startup.sh