首页 > 编程语言 >熟悉又陌生的JavaWeb 第3天

熟悉又陌生的JavaWeb 第3天

时间:2024-03-08 17:56:10浏览次数:27  
标签:xml JavaWeb CustomFilter 熟悉 println 陌生 Servlet response out

传送门

Servlet编程

第2天的开头部分已经看过Servlet
这里再介绍一下注解方式,可以不用配置web.xml
使用注解的前提是web.xml的version是4.0(3.0以上应该就行)

@WebServlet(name = "MyNewServlet", value = "/MyNewServlet")
public class MyNewServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>new Servlet</h1>");
        out.println("</body></html>");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

认识Servlet

编写Servlet

Servlet的生命周期

Servlet与JSP内置对象

设置欢迎页面

不配置默认就是index.jsp
web.xml

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

在Servlet中读取参数

    <context-param>
        <param-name>allServletCanRead</param-name>
        <param-value>全局变量所有Servlet都可以取到</param-value>
    </context-param>
    <servlet>
        <servlet-name>MyCustomServlet</servlet-name>
        <servlet-class>com.lazyking.MyCustomServlet</servlet-class>
        <init-param>
            <param-name>onlyMeCanRead</param-name>
            <param-value>局部变量仅限当前对象可以取到</param-value>
        </init-param>
    </servlet>
        String onlyMeCanRead = this.getInitParameter("onlyMeCanRead");

        //这个其实就是内置的application对象 ServletContext类
        ServletContext servletContext = this.getServletContext();
        String allServletCanRead = servletContext.getInitParameter("allServletCanRead");

使用过滤器

注解或者xml配置,建议注解

xml配置和注解是一一对应的,选一种

<filter>  
    <filter-name>CustomFilter</filter-name>
    <filter-class>com.lazyking.CustomFilter</filter-class>
<init-param>
    <param-name>yourParam</param-name>
    <param-value>yourValue</param-value>  
</init-pamm>  
</filter> 
 
<filter-mapping>
    <filter-name>CustomFilter</filter-name>  
<url-pattern>/*</url-pattern>

@WebFilter(filterName = "CustomFilter",urlPatterns = {"/*"},initParams = {@WebInitParam(name = "yourParam", value = "yourValue")})
public class CustomFilter implements Filter {

    private String yourParam;
    public void init(FilterConfig config) throws ServletException {
        System.out.println("init CustomFilter");
        this.yourParam = config.getInitParameter("yourParam");
    }

    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        System.out.println("请求进入Servlet前");
        System.out.println("request param is " + request.getParameterMap());
        chain.doFilter(request, response);
        System.out.println("请求执行完成响应至于客户端前");
        System.out.println();
        if (response instanceof HttpServletResponse response1){
            if (response1.getStatus() == 200){
                response1.getWriter().println("<br>过滤器追加" + yourParam);
            }
        }
    }
}

异常处理

古早年代的统一异常处理方式
web.xml

    <error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/error/error.jsp</location>
    </error-page>

课后习题

标签:xml,JavaWeb,CustomFilter,熟悉,println,陌生,Servlet,response,out
From: https://www.cnblogs.com/lazykingloveu/p/18061542

相关文章

  • JavaWeb之Java Servlet学习笔记
    JavaWeb学习笔记,主要是讲JavaServle,很适合Java开发网站的入门学习。(以课程进度为目录)第四周Web课.jsp中删除共性代码(html、body)————.java文件能相对的简洁taglib指令(标签库)动作元素action——element:包含include动态包含:在运行时才引入文件,代码也会动态引入,时间和......
  • 熟悉又陌生的JavaWeb 第2天
    传送门JSP基本语法什么是servlet自定义Servlet,直接使用抽象好的HttpServlet更好MyCustomServletpublicclassMyCustomServletextendsHttpServlet{@SerialprivatestaticfinallongserialVersionUID=-599450886992695746L;@Overrideprotected......
  • 关于Maven创建javaweb项目在配置Tomcat的问题(1)
    先将Maven项目转换成Java项目,确保没有架包没有报错和编译错误的情况下进行如下操作:打开Maven项目中的pom.xml文件,找到标签。查看里面是否配置元素,有则直接添加如下配置。org.codehaus.cargocargo-maven2-plugin1.7.6tomcat9xembedded如果没有,则先添加元素,然后再添加......
  • javaweb04-maven&web入门
    maven依赖管理:管理项目依赖的jar包,避免版本冲突统一项目结构:提供标准统一的项目结构标准的项目构建:标准跨平台的自动化项目构建方式maven坐标groupid:定义当前项目隶属组织名称artifactid:定义当前项目名称version:定义当前项目版本号依赖依赖传递排除依赖<exclusion>......
  • javaweb03-前端工程
    Ajax异步的Javascript和XML数据交换异步交互:在不重载页面的情况下,与服务器交换数据并更新部分网页Axios入门前后端分离开发需求分析->接口定义->前后端并行开发->测试->前后端联调开发YAPI接口管理平台前端工程化规范化、标准化前端开发环境准备vue-cli脚手架Vu......
  • 3.1日javaweb
     今天继续进行项目的编写packagecom.example.service;importcom.example.mapper.UserMapper;importcom.example.pojo.Application;importcom.example.pojo.Plan;importcom.example.pojo.User;importorg.springframework.beans.factory.annotation.Autowired;impo......
  • JavaWeb
    JavaWebJavaWeb组件首先献上Tomcat架构神图:ServletServlet容器:运行在Web服务器上的程序,作为来自HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层,它负责处理用户的请求,并根据请求生成相应的返回信息提供给用户。​ 大体原理图如下:Servlet请求的处理......
  • 黑马程序员JavaWeb学习笔记-过滤器
    过滤器--Filter过滤器Filter快速入门Filter拦截路径过滤器链Filter——流程importcom.alibaba.fastjson.JSONObject;importcom.itheima.pojo.Result;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.StringUtils;importjavax.servlet.*;im......
  • 黑马程序员JavaWeb学习笔记-拦截器
    拦截器--Interceptor--快速入门@Component注解交给ioc容器管理--注册配置拦截器@Configuration注解用来标识当前是Spring当中的一个配置类//Interceptor拦截所有("/**")//Filter拦截所有("/*")//WebConfig需要在包下新建一个config包与controller同级//.excl......
  • 黑马程序员JavaWeb学习笔记-文件上传
    文件上传https://www.bilibili.com/video/BV1m84y1w7Tb/?p=150&spm_id_from=pageDriver&vd_source=62f4901d4d947272c439194b87ec6698当报错500时,服务端出现错误,因为默认最大为1M在application.properties里面修改文件上传的几个函数本地存储Controller层的代码import......