Java Web应用开发

侯玉香,聂军,雷秦川,骆丽华,陈道敏,苗莹莹,刘叶

目录

  • 1 Java Web概述
    • 1.1 任务导引
    • 1.2 动态网页技术介绍
    • 1.3 JSP的运行环境
    • 1.4 JSP的运行原理
    • 1.5 JSP程序开发模式
    • 1.6 JSP开发工具
    • 1.7 任务实施:搭建项目环境及公司主页设计
    • 1.8 学习测验
  • 2 JSP基本语法
    • 2.1 任务导引
    • 2.2 JSP的基本组成
    • 2.3 脚本元素
    • 2.4 指令元素
    • 2.5 动作元素
    • 2.6 任务实施
    • 2.7 学习测验
  • 3 服务器交互
    • 3.1 任务导引
    • 3.2 课堂实录
    • 3.3 JSP内置对象概述
    • 3.4 out对象
    • 3.5 request对象
    • 3.6 response对象
    • 3.7 session对象
    • 3.8 application对象
    • 3.9 其他内置对象
    • 3.10 任务实施:使用JSP内置对象实现登录和注销功能
    • 3.11 学习测验
  • 4 JavaBean技术
    • 4.1 任务引导
    • 4.2 JavaBean概述
    • 4.3 JavaBean的应用
    • 4.4 JavaBean的作用域
    • 4.5 任务实施
    • 4.6 JSP中的文件操作
    • 4.7 学习测验
  • 5 Servlet技术
    • 5.1 任务引导
    • 5.2 Servlet基础
    • 5.3 Servlet开发
    • 5.4 Servlet常用API
    • 5.5 任务实施
    • 5.6 章节测验
  • 6 第6章 过滤器和监听器
    • 6.1 任务导引
    • 6.2 Servlet过滤器
    • 6.3 过滤器创建与配置
    • 6.4 Servlet监听器
    • 6.5 Servlet3.0新特性
    • 6.6 任务实施
    • 6.7 学习测验
  • 7 Java Web的数据库操作
    • 7.1 任务导引
    • 7.2 JDBC技术
    • 7.3 使用JDBC驱动程序访问数据库
    • 7.4 数据库连接的JavaBean
    • 7.5 JDBC对事务的操作
    • 7.6 连接池技术
    • 7.7 任务实施
    • 7.8 扩展阅读
    • 7.9 章节测验
  • 8 JSP高级技术
    • 8.1 任务导引
    • 8.2 EL概述
    • 8.3 JSTL标签库简介
    • 8.4 JSTL核心标签
    • 8.5 JSP与Ajax
    • 8.6 任务实施
    • 8.7 扩展阅读
    • 8.8 学习测验
  • 9 JSP实用组件技术
    • 9.1 任务导引
    • 9.2 上传与下载组件
    • 9.3 发送E-mail
    • 9.4 JSP动态图表
    • 9.5 在线编辑器
    • 9.6 任务实施
  • 10 教学过程材料
    • 10.1 2024-2025学年第一学期
      • 10.1.1 教学大纲
      • 10.1.2 授课计划
      • 10.1.3 实训指导书
      • 10.1.4 教案
      • 10.1.5 课件PPT
    • 10.2 2024-2025学年第二学期
      • 10.2.1 教学大纲
      • 10.2.2 授课计划
      • 10.2.3 实训指导书
      • 10.2.4 教案
      • 10.2.5 课件PPT
    • 10.3 2025-2026学年第一学期
      • 10.3.1 教学大纲
      • 10.3.2 授课计划
      • 10.3.3 实训指导书
      • 10.3.4 教案
      • 10.3.5 课件PPT
    • 10.4 2025-2026学年第二学期
      • 10.4.1 教学大纲
      • 10.4.2 授课计划
      • 10.4.3 实训指导书
      • 10.4.4 教案
      • 10.4.5 课件PPT
  • 11 课外资料
    • 11.1 电子书
      • 11.1.1 JavaWeb从入门到精通
      • 11.1.2 JavaWeb开发详解
      • 11.1.3 JavaWeb开发之道
      • 11.1.4 深入体验JavaWeb开发内幕-核心基础
      • 11.1.5 学通JavaWeb的24堂课
      • 11.1.6 Java Web 程序设计
      • 11.1.7 Java Web程序设计教程
      • 11.1.8 Java Web设计与应用教程
      • 11.1.9 Java_Web编程新手自学手册
      • 11.1.10 Tomcat and Java Web 开发技术详解
      • 11.1.11 Spring Boot 2+Thymeleaf企业应用实战
      • 11.1.12 Spring Boot+Vue全栈开发实战
      • 11.1.13 Spring实战
      • 11.1.14 JavaEE 8+Tomcat 9
    • 11.2 教学视频
      • 11.2.1 JDBC基础教学视频
      • 11.2.2 JDBC高级应用教学视频
任务实施

使用过滤器实现用户权限控制,有两种方式可以采用。

第一种方式是为每个要过滤的页面写一个过滤器,如果要过滤的页面较多,这种方法工作量将很大;

另一种方式是将要过滤的页面放入文件夹,对整个文件夹下的文件写一个过滤器,这种方式可以节省很多代码。

user.jsp、publish.jsp等页面放入权限文件夹admin,没有登录则用过滤器掉用户的请求,使其不能访问admin文件夹中的文件。

1.为user.jsp、publish.jsp各自添加过滤器

(1) UserFilter.java文件

(2)PublishFilter .java文件

(3)两个过滤器的配置写入web.xml文件,可以看到/jsp/user.jsp和/jsp/publish.jsp都被过滤掉了。

<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0"    xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <filter>

  <filter-name>UserFilter</filter-name>

  <filter-class>cn.cszyedu.filter.UserFilter</filter-class>

  </filter>

  <filter-mapping>

  <filter-name>UserFilter</filter-name>

  <url-pattern>/jsp/user.jsp</url-pattern>

  </filter-mapping>

    <filter>

  <filter-name>PublishFilter</filter-name>  <filter-class>cn.cszyedu.filter.PublishFilter</filter-class>

  </filter>  <filter-mapping>  <filter-name>PublishFilter</filter-name>

  <url-pattern>/jsp/publish.jsp</url-pattern>

  </filter-mapping>

  </web-app>

2.第二种方式是在WebRoot下新建admin文件夹,将需要权限访问的页面都放入admin文件夹,为admin文件夹写一个过滤器。

FolderFilter .java (这里使用注解替代web.xml文件配置Filter)

@WebFilter(filterName="FolderFilter",urlPatterns="/admin/*",description="过滤admin文件夹下的所有文件")

public class FolderFilter implements Filter {

@Override                                                                                                                                                   public void destroy() {

}

  @Override                                                                                                                                                    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest request1 = (HttpServletRequest) request; HttpSession session = request1.getSession(); if(session.getAttribute("userName")!=null){                                                                                 chain.doFilter(request, response);                                                                                         return;



}else{ ((HttpServletResponse)response).sendRedirect(request1.getContextPath()+"/jsp/login.jsp");

}

}

  @Override                                                                                                                                                     public void init(FilterConfig arg0) throws ServletException {

          }

}

效果如图所示(不登录访问/jsp/user.jsp、/jsp/publish.jsp和/admin/add.jsp页面,都因没有权限被过滤器过滤掉,而被强行跳转回login.jsp页面):