精华内容
下载资源
问答
  • servlet必须实现的接口
    千次阅读
    2019-03-26 13:35:11

    实现servlet接口必须实现接口中所有的方法,而继承HttpServlet类可以只重写类中的一个或多个方法

     

    实现servlet接口

    继承HttpServlet

    下面是github地址:https://github.com/nicesmile01/nice_servlet.git

    更多相关内容
  • 让javaweb运行,提供servlet-api的接口实现。tomcat的实现
  • 在本文中,我将介绍如何在servlet中调用RESTful API。
  • 本篇文章是对javax.servlet.Servlet,ServletContext接口进行了纤细的分析介绍,需要的朋友参考下
  • Servlet开发之实现Servlet接口

    千次阅读 2019-06-10 16:36:25
    第一步、创建java文件并实现Servlet接口: public class Hello implements Servlet{ // 该函数用于初始化该servlet(类似类的构造函数) // 这个函数只会被调用一次 (当用户第一次访问该serv...
    1. 安装好Tomcat后 在tomcat>lib下面的

    这个servlet-apt.jar jar包需要导入到项目中.


    第一步、创建java文件并实现Servlet接口:

    public class Hello  implements Servlet{
        // 该函数用于初始化该servlet(类似类的构造函数) 
        // 这个函数只会被调用一次 (当用户第一次访问该servlet时被调用)
        public void init(ServletConfig parm1) throws ServletException {
            System.out.println("servlet init");
        }
        
    
        public ServletConfig getServletConfig() {
            // TODO: Add your code here
            return null;
        }
    
         // 这个函数用于处理业务逻辑 
        // 程序员应当把业务逻辑代码写在这里
        // 该函数每次访问servlet都会被调用
        // req:用于获得客户端(浏览器)的信息
        // res:用于向客户端(浏览器)返回信息
        public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
            // 从res中得到PrintWriter
            System.out.println("Servlet service");
            PrintWriter pw = res.getWriter();
            pw.println("Hello World");
        }
    
        public String getServletInfo() {
            return "";
        }
        
        // 销毁Servlet实例 释放内存
        // 1.reload 该servlet(webApps) 2.关闭Tomcat 3.关机
        public void destroy() {
            System.out.println("Destory!");
        }
        
    }
    

    第二步、部署Servlet

    1. 找到WebApps>'你的App'>WEB-INF>web.xml
    2. 文件内容如下:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <web-app 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"
      version="3.0"
      metadata-complete="true">
    
      <display-name>Welcome to Tomcat</display-name>
      <description>
         Welcome to Tomcat
      </description>
    <!--JSPC servlet mapping start-->
        <servlet>
            <!--给你的servlet取名,任意-->
            <servlet-name>hello</servlet-name>
            <!--指明servlet路径,包名加类名-->
            <servlet-class>com.lee.Hello</servlet-class>
        </servlet>
        
        <servlet-mapping>
            <!--给你的servlet取名,任意-->
            <servlet-name>hello</servlet-name>
            <!--映射地址 在浏览器中输入的URL-->
            <url-pattern>/he</url-pattern>
        </servlet-mapping>
    <!--JSPC servlet mapping end-->
    </web-app>
    
    

    第三步、 启动Tomcat

    1. 执行 /bin/startup.bat
    2. 浏览器输入 : 127.0.0.1:8080/myWebSite/he

     

    3. 控制台输出 servlet initServlet service
    4. 每次刷新页面都会执行 `Servlet service

     

    5. 进入Tomcat Manager


    可以看到执行了 destory() 方法 :

     

     

    展开全文
  • Servlet接口及其实现类 Java Servlet Jsp XML HTML Servlet接口及其实现Servlet接口及其实现Servlet接口 GenericServlet类 HttpServlet类 实现Servlet接口 继承GenericServlet类 Servlet接口及其实现类 方法...
  • servlet核心接口和类

    千次阅读 2022-02-10 12:30:25
    它是所有servlet必须直接或间接实现接口,其内部需要实现的5个方法分别关乎着我们servlet生命周期和业务实现。 5个方法如下所示: 1.init(...)当Servlet第一次被请求时,servlet容器就会开始调用这个方法来...

    在servlet体系中,除了实现servlet接口,还可以通过继承GenericServlet和HttpServlet两种抽象类实现编写。

    接口就是对行为的规范。

    一、servlet接口

    servlet接口是整个servlet的核心。它是所有servlet类必须直接或间接实现的接口,其内部需要实现的5个方法分别关乎着我们servlet生命周期和业务实现。

    5个方法如下所示:

    1.init(...)当Servlet第一次被请求时,servlet容器就会开始调用这个方法来初始化一个servlet对象出来

    2.service(...) 每当请求servlet时,servlet容器就会调用这个方法

    3.destory(...) 当要销毁servlet时,servlet容器就会调用这个方法

    4.getServletInfo(...) 这个方法会返回servlet的一段描述,可以返回一段字符串

    5.getServletConfig(...)  这个方法会返回servlet容器传给init()方法的servletconfig对象

    二、servlet的生命周期

    由于自己直接或间接创建的servlet并没有main方法,不能独立运行,它的运行完全有servlet容器进行控制和调度(反射的方式进行方法运行)。servlet生命周期可被定义为从创建直到毁灭的整个过程 。

     我们创建一个servlet类来实现一个servlet接口,代码如下所示:

    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class servlet1 implements Servlet{
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		System.out.println("销毁时调用");
    	}
    
    	@Override
    	public ServletConfig getServletConfig() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public String getServletInfo() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public void init(ServletConfig arg0) throws ServletException {
    		// TODO Auto-generated method stub
    		System.out.println("初始化时调用");
    	}
    
    	@Override
    	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		System.out.println("开启服务时调用");
    	}
    
    }
    

    生命周期示意图如下图所示:

     3.GenericServlet抽象类

    GenericServlet实现了servlet接口里的init()方法和destroy()方法,简化了我们的开发流程。

    我们继承GenericServlet类 后只需要实现service方法就可以

    4.HpptServlet抽象类

     HpptServlet是继承了GenericServlet类,也是一个抽象类。因为我们的请求一般都是http请求,为了匹配http请求,于是就有了httpservlet。为了我们能够更加方便的处理来着浏览器的数据和将数据会写到浏览器,httpservlet类引用了HttpServletRequst和HttpServletResponse两个类来处理相应数据。

    里面封装了两个根据请求方式进行处理的方法,分别是doGet()方法和doPost()方法,根据前台不同的请求方式运行其中不同的方法。

    servlet接口继承如下图所示:

     

    展开全文
  • 2)从狭义上来讲,Servlet 指的是 javax.servlet.Servlet 接口及其子接口,也可以指实现Servlet 接口实现类。 3)Servlet 作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet 的实例对象由 ...

    1、Servlet 简介

    1)从广义上来讲,Servlet 规范是 Sun 公司制定的一套技术标准,包含与 Web 应用相关的一系列接口,是 Web 应用实现方式的宏观解决方案。而具体的 Servlet 容器负责提供标准的实现。

    2)从狭义上来讲,Servlet 指的是 javax.servlet.Servlet 接口及其子接口,也可以指实现了Servlet 接口的实现类。

    3)Servlet 作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet 的实例对象由 Servlet 容器负责创建;Servlet 的方法由容器在特定情况下调用;Servlet 容器会在 Web 应用卸载时销毁 Servlet 对象的实例。

    2、第一个 Servlet

    2.1 编写 Servlet

    1) 创建自己的类 HelloServlet,实现 Servlet 接口,并编写 service 方法

    public class HelloServlet implements Servlet{
    
    	@Override
    	public void init(ServletConfig config) throws ServletException {
    	}
    	
    	@Override
    	public ServletConfig getServletConfig() {
    		return null;
    	}
    	
    	@Override
    	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    		System.out.println("我是不是被执行了?");
    	}
    	
    	@Override
    	public String getServletInfo() {
    		return null;
    	}
    	
    	@Override
    	public void destroy() {
    	}
    }
    

    2) 在 web.xml 中配置 servlet 信息

    <servlet>
    	<servlet-name>helloServlet</servlet-name>
    	<servlet-class>com.atguigu.listener.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>helloServlet</servlet-name>
    	<url-pattern>/helloworld</url-pattern>
    </servlet-mapping>
    

    配置详解:
    <servlet></servlet>:这个之间配置的是Servlet的类信息
    <servlet-name>:这是 Servlet 的别名,一个名字对应一个 Servlet。相当于变量名
    <servlet-class>:Servlet 的全类名,服务器会根据全类名找到这个 Servlet
    <servlet-mapping></servlet-mapping>:这个之间配置的是 Servlet 的请求映射信息
    <servlet-name>:Servlet的别名,说明这个Servlet将会响应下面url-pattern的请求
    <url-pattern>:Servlet响应的请求路径。如果访问这个路径,这个Servlet就会响应。这个url-pattern可以配置多个,这时表示的就是访问这些url都会触发这个Servlet进行响应

    3) 运行浏览器,访问刚才配置的 url 路径,Servlet 的 service 方法就会被调用。

    2.2 运行原理

    在这里插入图片描述

    3、Servlet 技术体系

    3.1 Servlet 的层次关系

    在这里插入图片描述

    3.2 Servlet 接口

    在这里插入图片描述

    1)Servlet 接口是 Servlet 的规范。
    2)init(ServletConfig config):Servlet 初始化函数。初始化时 ServletConfig 会被传入
    3)ServletConfig getServletConfig():获取 ServletConfig 对象
    4)service(ServletRequest req, ServletResponse res):收到请求后的执行方法
    5)String getServletInfo():返回此 Servlet 的描述信息
    6)void destroy():Servlet 的销毁方法

    3.3 GenericServlet 抽象类

    在这里插入图片描述

    1) Servlet,ServletConfig 的实现类。里面可以实现 Servlet 的功能,可以获取 ServletConfig 的信息
    2)String getInitParameter(String name):获取 Servlet 初始化参数值,初始化参数在 web.xml 的 Servlet 中 配 置 ,
    <init-param>
    <param-name>user</param-name>
    <param-value>abc</param-value>
    <init-param/>
    3)Enumeration<String> getInitParameterNames():获取 Servlet 初始化的所有参数 name 值
    4)ServletConfig getServletConfig():获取 ServletConfig 对象
    5)ServletContext getServletContext():获取 ServletContext 对象
    6)String getServletInfo():获取 Servlet 的描述信息
    7)void init(ServletConfig config):从 Servlet 实现的 init 方法,这里面调用了自己的 init方法。
    8)void init():自己的 init 方法
    9)abstract void service:抽象方法,继承此类的子类必须自己实现此方法。每次请求都会调用此方法。
    10)String getServletName():获取 Servlet 的名字

    3.4 HttpServlet 抽象类

    在这里插入图片描述

    1)HttpServlet 继承了 GenericServlet,并实现了 service 方法。在 service 方法中,将 ServletRequest 和 ServletResponse 转换为了 HttpServletRequest 和 HttpServletResponse,用来专门处理我们的 Http 请求。

    2)Servlet(ServletRequest, ServletResponse) 方法在完成对请求和响应的强转之后调用了方法,在被调用的方法中对请求类型进行了判断,各种请求调用自己相应的 doXXX 方法。而我们常用的就是 doGet() 和 doPost() 方法。

    3)在我们以后的使用中,都使用继承 HttpServlet 的方式,重写 doGet 和 doPost 方法即可。
    在浏览器发送请求的时候,如果是 get 请求,将会调用 doGet()方法,如果是 post 请求,将会调用 doPost()方法。

    4)继承 HttpServlet 的新的 Servlet 写法如下(web.xml 配置与之前相同)

    public class FirstServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    		public FirstServlet() {
    		super();
    	}
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("doGet()......");
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("doPost()......");
    	}
    }
    

    4、Servlet 生命周期

    4.1 什么是生命周期

    应用程序中的对象不仅在空间上有层次结构的关系,在时间上也会因为处于程序运行过程中的不同阶段而表现出不同状态和不同行为 — — 这就是对象的生命周期。
    简单的叙述生命周期,就是对象在容器中从开始创建到销毁的过程。

    4.2 Servlet 容器

    Servlet 对象是 Servlet 容器创建的,生命周期方法都是由容器调用的。这一点和我们之前所编写的代码有很大不同。在今后的学习中我们会看到,越来越多的对象交给容器或框架来创建,越来越多的方法由容器或框架来调用,开发人员要尽可能多的将精力放在业务逻辑的实现上。

    4.3 Servlet 生命周期

    我们在编写 Servlet 的 HelloWorld 的时候,我们发现服务器在启动后,访问配置的 url 的时候好像调用了 Servlet 的几个方法。到底 Servlet 在容器中是如何创建,使用,消亡的。主要步骤:

    4.3.1 Servlet 对象的创建

    默认情况下,Servlet 容器第一次收到 HTTP 请求时创建对应 Servlet 对象。容器之所以能做到这一点是由于我们在注册 Servlet 时提供了全类名,容器使用反射技术创建了Servlet的对象。

    4.3.2 Servlet 对象初始化

    1)Servlet 容器创建 Servlet 对象之后,会调用 init(ServletConfig config) 方法,对其进行初始化。在 javax.servlet.Servlet 接口中,public void init(ServletConfig config) 方法要求容器将 ServletConfig 的实例对象传入,这也是我们获取 ServletConfig 的实例对象的根本方法。

    2)为了简化开发,GenericServlet 抽象类中实现了 init(ServletConfig config)方法,将 init(ServletConfig config)方法获取到的 ServletConfig 对象赋值给了成员变量 ServletConfig config,目的是使其它方法可以共享这个对象。这时有一个问题:如果子类重写了这个init(ServletConfig config)方法,有可能会导致成员变量 config 对象赋值失败。所以 GenericServlet抽象类另外提供了一个无参的public void init()方法,并在init(ServletConfig config)方法中调用,作为子类进行初始化操作时重写使用。而这个无参的 init()方法之所以没有设计成抽象方法,是为了避免子类继承时强制实现这个方法带来的麻烦,使用者可以根据需要选择是否要覆盖这个方法。

    4.3.3 处理请求

    1)在 javax.servlet.Servlet 接口中,定义了 service(ServletRequest req, ServletResponse res) 方法处理 HTTP 请求,同时要求容器将ServletRequest 对象和 ServletResponse 对象传入。

    2)在 HttpServlet 抽象类中,service(ServletRequest req, ServletResponse res)方法将 ServletRequest 对象和 ServletResponse 对象强 转为了 HttpServletRequest 、HttpServletResponse子类对象,这样更适合于HTTP请求的处理,所以在 doGet() 和 doPost() 方法中使用的就是 HttpServletRequest、HttpServletResponse 的实现类对象了。

    4.3.4 Servlet 对象销毁

    Web 应用卸载或服务器停止执行时会销毁 Servlet 对象,而销毁之前为了执行一些诸如释放缓存、关闭连接、保存数据等操作,所以设计了 public void destroy()方法。

    步骤总结

    1)Servlet 对象创建:接收到浏览器请求后,才创建对象

    2)Servlet 初始化
    创建对象之后,会调用 init()方法
    作用:是在 Servlet 对象创建后,执行一些初始化操作
    例如,读取一些资源文件,或建立某种连接
    init()方法只在创建对象时执行一次,以后再接到请求时,就不执行了

    3)Servlet 处理客户端请求
    接收到请求之后调用 service()方法
    在每次接到请求后都会执行

    4)Servlet 面临对象的销毁
    当前 Web 应用卸载之前调用 destroy()方法
    在应用卸载之前,可能需要释放一些资源,关闭某些连接

    5、ServletConfig 接口

    在这里插入图片描述

    5.1 ServletConfig 接口简介

    封装了 Servlet 配置信息,这一点从接口的名称上就能够看出来。但同时,代表当前 Web 应用的 ServletContext 对象也封装到了 ServletConfig 对象中,使 ServletConfig 对象成为了获取ServletContext 对象的一座桥梁。

    5.2 ServletConfig 对象的主要功能

    1)获取 Servlet 名称
    2)获取 Servlet 初始化参数
    3)获取 ServletContext 对象

    5.3 Servlet 初始化参数

    在 Servlet 注册信息中,指定的一个参数,有参数名和参数值。在 servlet 标签内加入如下配置信息

    <!-- Servlet初始化参数 -->
    <init-param>
    	<!-- 初始化参数的参数名 -->
    	<param-name>Status</param-name>
    	<!-- 初始化参数的值 -->
    	<param-value>open</param-value>
    </init-param>
    

    对 Servlet 运行时如果想设置一些开关选项,就可以以配置文件的形式进行设置,在改变选项状态时,不需要修改源代码、重新编译,只需修改配置文件即可。

    //获取初始化参数
    String paramValue = servletConfig.getInitParameter("Status");
    

    5.4 获取 ServletConfig 对象

    1)在 GenericServlet 中,由容器传入 init(ServletConfig config)方法。

    2)在GenericServlet中提供了public ServletConfig getServletConfig()方法用来获取ServletConfig对象。

    3)如果继承了 HttpServlet,则可以直接调用 getServletConfig()方法获取 ServletConfig 对象

    6、ServletContext 接口

    在这里插入图片描述

    1) web 容器在启动时,他会为每个 web 应用都创建一个对应的 ServletContext 对象。注意:一个web应用对应的是一个ServletContext对象。就行每个web应用就像是不同的餐厅,而 Servlet 是餐厅服务员,可以有很多,ServletContext 是这个餐厅的经理只能有一个。

    2) 由于一个 web 应用程序的所有 Servlet 都共享的是同一个 ServletContext 对象,所以 ServletContext 对象也被称为 application 对象(web 应用程序对象)

    3) 在应用程序中能够获取运行环境或者容器信息的对象通常称之为“上下文对象”。

    4) ServletContext 的主要功能

    • 获取虚拟路径所映射的本地路径
      虚拟路径:浏览器访问 web 应用中资源时所使用的路径
      本地路径:资源在文件系统中的实际保存路径
    • application 域范围的属性
    • 获取 web 应用程序的初始化参数
      设置 Web 应用初始化参数的方式是在 web.xml 的根标签下加入如下代码
    <!-- Web应用初始化参数 -->
    <context-param>
    	<param-name>ParamName</param-name>
    	<param-value>ParamValue</param-value>
    </context-param>
    

    获取 Web 应用初始化参数

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
    	//1.获取ServletContext对象
    	ServletContext context = this.getServletContext();
    	//2.获取Web应用初始化参数
    	String paramValue = context.getInitParameter("ParamName");
    	System.out.println("paramValue="+paramValue);
    }
    

    7、HttpServletRequest 接口

    该接口是 ServletRequest 接口的子接口,封装了 HTTP 请求的相关信息,由 Servlet 容器创建其实现类对象并传入 service(ServletRequest req, ServletResponse res)方法中。我们请求的详细信息都可以通过 HttpServletRequest 接口的实现类对象获取。这个实现类对象一般都是容器创建的,我们不需要管理。
    HttpServletRequest 主要功能:

    7.1 获取请求参数

    1)什么是请求参数?
    请求参数就是浏览器向服务器提交的数据

    2)浏览器向服务器如何发送数据

    • 附在 url 后面,如:http://localhost:8989/MyServlet/MyHttpServlet?userId=20
    • 通过表单提交
    <form action="MyHttpServlet" method="post">
    	你喜欢的足球队<br /><br />
    	巴西<input type="checkbox" name="soccerTeam" value="Brazil" />
    	德国<input type="checkbox" name="soccerTeam" value="German" />
    	荷兰<input type="checkbox" name="soccerTeam" value="Holland" />
    	<input type="submit" value=" 提交 " />
    </form>
    

    3)使用HttpServletRequest对象获取请求参数

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	// 一个name 对应一个值
    	String userId = request.getParameter("userId");
    	System.out.println("userId="+userId);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
    	// 一个name 对应一组值
    	String[] soccerTeams = request.getParameterValues("soccerTeam");
    	for(int i = 0; i < soccerTeams.length; i++){
    	System.out.println("team "+i+"="+soccerTeams[i]);
    }
    

    7.2 在请求域中保存数据

    数据保存在请求域中,可以转发到其他Servlet或者jsp页面,这些 Servlet或者 jsp 页面就会从请求中再取出数据

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	//将数据保存到request对象的属性域中
    	request.setAttribute("attrName", "attrValueInRequest");
    	//两个Servlet要想共享request对象中的数据,必须是转发的关系
    	request.getRequestDispatcher("/ReceiveServlet").forward(request, response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	//从request属性域中获取数据
    	Object attribute = request.getAttribute("attrName");
    	System.out.println("attrValue="+attribute);
    }
    

    8、HttpServletResponse 接口

    HttpServletResponse 是 ServletResponse 接口的子接口,封装了 HTTP 响应的相关信息,由Servlet 容器创建其实现类对象并传入 service(ServletRequest req, ServletResponse res) 方法中。
    主要功能:

    1)使用 PrintWriter 对象向浏览器输出数据
    //通过PrintWriter对象向浏览器端发送响应信息
    PrintWriter writer = res.getWriter();
    writer.write("Servlet response");
    writer.close();
    

    2)实现请求重定向

    9、字节码问题

    8.1 简介

    字符集 就是各种字符的集合,包括汉字,英文,标点符号等等。各国都有不同的文字、符号。这些文字符号的集合就叫字符集。
    现有的字符集 ASCII、GB2312、BIG5、GB18030、Unicode 等
    这些字符集,集合了很多的字符,然而,字符要以二进制的形式存储在计算机中,我们就需要对其进行编码,将编码后的二进制存入取出时我们就要对其解码,将二进制解码成我们之前的字符。这个时候我们就需要制定一套编码解码标准。否则就会导致出现混乱,也就是我们的乱码。

    8.2 编码与解码

    • 编码:将字符转换为二进制数
    汉字编码方式编码二进制
    ‘中’GB2312D6D01101 0110-1101 0000
    ‘中’UTF-164E2D0100 1110-0010 1101
    ‘中’UTF-8E4B8AD1110 0100-1011 1000-1010 1101
    • 解码:将二进制数转换为字符
      1110 0100-1011 1000-1010 1101 → E4B8AD → ’中’

    • 乱码:一段文本,使用 A 字符集编码,使用 B 字符集解码,就会产生乱码。
      所以解决乱码问题的根本方法就是统一编码和解码的字符集。

    在这里插入图片描述

    8.3 解决乱码

    解决方法就是统一字符编码。

    在这里插入图片描述

    8.3.1 接收中文请求参数

    1)POST 请求:post 请求提交了中文。在获取参数值之前,设置请求的解码格式,使其和页面保持一致。我们以后都使用 utf-8 编码,它也称作万国码,集合了基本所有的字符。

    解决方法:request.setCharacterEncoding(“utf-8”);

    2)GET 请求:GET 请求参数是在地址后面的。不能使用上述方法。我们需要修改 tomcat的配置文件。需要在 Server.xml 文件修改 Connector 标签,添加 URIEncoding="utf-8"属性。

    在这里插入图片描述

    8.3.2 向浏览器发送有中文字符的响应

    向浏览器发送响应的时候,要告诉浏览器,我使用的字符集是哪个,浏览器就会按照这种方式来解码。如何告诉浏览器响应内容的字符编码方案。很简单。

    解决方法:response.setContentType(“text/html;charset=utf-8”);

    或者使用这两句组合:
    response.setCharacterEncoding(“utf-8”);
    response.setHeader(“Content-Type”, “text/html;charset=utf-8”);

    我们一般使用 response.setContentType(“text/html;charset=utf-8”);


    如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
    创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客
    展开全文
  • Servlet实现方式

    千次阅读 2022-04-16 11:21:00
    Servlet的初级
  • 超全面javaweb教程28天第9天_4_Servlet接口和类的介绍,以及实现Servlet接口
  • java通过servlet实现restful接口示例

    万次阅读 热门讨论 2018-07-31 13:59:50
    项目结构: JsonServlet.java代码: package com.demo; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;...import javax.servlet.ServletException; imp...
  • JavaWeb的Servlet接口及其实现

    千次阅读 2020-08-20 22:25:58
    Servlet接口Servlet API的核心接口,所有的Servlet接口都需要实现接口Servlet接口有5个方法。包括 init(ServletConfig config):在Servlet创建后将调用该方法进行初始化。 Service(ServletRequest req,Servlet...
  • servlet三种方式实现servlet接口

    千次阅读 2018-08-13 08:20:00
    servlet三种方式实现servlet接口 简单介绍 Servlet接口实现类 1、Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。 2、HttpServlet指能够处理HTTP请求的servlet,它...
  • ##无法实现Servlet接口(无法进行 import javax.servlet.*) 将Tomcat集成到IDEA中时一般默认会出现那两个jar包,但可能会由于一些误操作导致jar包出现错误或者找不到。 如果在创建的JavaEE项目的类中中无法实现...
  • 0. 环境配置 这里使用IntelliJ IDEA,...此服务器是一个Servlet容器,我们需要遵循Servlet接口规范,即javax.servlet.*。 这里由于我们使用的是Maven项目,所以这里引入servlet api 依赖,servlet api的版本为3.1 &...
  • Java Servlet编写JSON数据接口,简单实用的方式
  • Servlet学习笔记》Servlet接口实现

    千次阅读 2017-07-01 15:50:19
    Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。 HttpServlet指能够处理HTTP请求的Servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大...
  • Servlet接口简介1Servlet接口是所有Servlet必须直接或间接实现接口2开发者可以通过实现接口开发Servlet通过实现对应的方法可以处理用户从客户端发起的请求并作出合理的响应3通过该接口可以获取Servlet相关...
  • 有的项目技术旧点,可能实现一个http接口就得通过servlet得方式,当然,像ssm,ssh等项目,直接可以使用springmvc的注解去实现http接口服务,今天,主要讲一下通过servlet和springmvc注解的方式实现http接口服务。...
  • servlet 接口方法的介绍

    千次阅读 2022-04-15 20:24:04
    1. init() init :起始方法,仅在...以上三种方法,统称为servlet的生命周期方法,是servlet最主要的功能 4. getServletConfig() getServletConfig():获取servlet的配置信息。 5 .getServletInfo() getServletInf
  • Servlet概述:I.什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: 1. 接收请求数据; 2. 处理请求; 3....
  • Servlet接口实现

    千次阅读 2013-12-31 09:52:33
    Servlet接口实现类 1)Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。   2)HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它...
  • 有道云笔记链接可查看:IDEA中新建一个java类,无法实现Servlet接口或者继承HttpServlet类 问题描述: 新建一个java类,无法实现Servlet接口或者继承HttpServlet类 原因: 缺少tomcat的libraries(HttpServlet类...
  • javaWeb之连接服务器接口Servlet实现

    千次阅读 2018-03-26 21:08:15
    页面向数据库请求数据的过程: ①页面通过服务器的地址链接来连接服务器 ②服务器的应用服务器tomcat通过网址中的程序名访问挂在上面...④创建servlet接口的实现类,然后执行servlet实现类中执行生命周期的四个方法 生
  • 通俗解释一下:就是我们开发人员所编写的一个类,必须直接或者间接实现这个javaEE的核心规范,也就是实现Servlet接口,因为这种类产生的对象可以被浏览器访问到,因此称之为Servlet,并且javaEE中规定了只有Servlet的...
  • 1、出现问题: Java类出现无法实现Servlet接口问题截图: 2、问题解决: 3、成功引入servlet-api.jar包后:
  • 通过实现Servlet接口的方式来开发一个servlet,要求该servlet可以显示HelloWorld同时显示当前时间。对初学者比较有用,描述了开发servlet的每一个详细步骤。
  • Servlet

    2020-12-20 23:14:21
    实现接口中的抽象方法 配置Servlet demo1 com.kilig.web.servlet.ServletDemo1 demo1 /demo1 执行原理 当服务器接收到客户端浏览器请求后,会解析请求URL路径,获取访问的Servlet的资源路径 查找web.xml文件,...
  • Servlet核心接口

    千次阅读 2018-09-05 15:32:53
    servlet体系中,除了用于实现servlet接口、GenericServlet类和HttpServlet类外,还有一些辅助servlet获取相关资源的重要接口,,了解这些接口并熟练运用这些接口的常用方法是使用servlet进行web开发的基础 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 319,099
精华内容 127,639
关键字:

servlet必须实现的接口