zoukankan      html  css  js  c++  java
  • 创建一个servlet,解决maven依赖、路径问题、遇到的乱码问题

    如何创建一个servlet?

    1.通过如下Java ==> JAVA EE方式

    image-20200414113455075

    image-20200414114134390

    image-20200414114634995

    image-20200414114911461

    创建Servlet时,idea帮我们做了2件事:

    ①生成Servlet.java类

    image-20200414115342815

    image-20200414120233534

    ②在web.xml核心配置文件中进行servlet注册

    image-20200414115613969

    至此,这种方法,Servlet已经创建成功了

    ②在Maven中创建servlet

    创建maven项目后:先添加javaresources这两个包,同时,将它们设为有特定功能的包。

    image-20200414120435918

    image-20200414121056345

    刚开始在java==>new 时,是没有创建servlet选项的。

    解决方法=>添加2个依赖:

     <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>4.0.1</version>
         </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
        <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>javax.servlet.jsp-api</artifactId>
          <version>2.3.3</version>
        </dependency>
    

    这时,有了创建servlet选项:

    image-20200414123718865

    注意:

    image-20200414125353505

    更好的一个方法是:找到webapps--》ROOT--》WEB-INF--》web.xml,直接粘贴复制到项目的web.xml中,目前最新版为4.0。

    3.在web.xml中注册servlet,并添加对应的映射。

    示例:

    参考官方提供的webapps下的examples: http://localhost:8080/examples/ 我认为这是入门最好的教程

    HelloServlet.java

    @WebServlet(name = "HelloServlet")
    public class HelloServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //响应的类型:xml
            response.setContentType("text/html");
            //获取响应的输出流:getWriter()输出字符、getOutputStream()输出字节
            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Hello World!</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet测试</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }
    

    在web.xml

    image-20200414131946925

    4.运行Tomcat:查看结果

    主页:

    image-20200414134357684

    测试hello.html:

    image-20200414134847112

    测试MyServlet.java

    image-20200414135526754

    乱码问题的解决:

    【分析】请求头和响应头

    已经设置了响应类型为html,还需设置字符编码,一般设为utf-8

    image-20200414141636212

    image-20200414142040760

    【解决】

    image-20200414142230575

    【查看效果】

    image-20200414142744048

    注意:不能访问WEB-INF目录下的资源

    从安全角度出发,TOMCAT不允许访问WEB-INF目录下的HTML,JSP文件。 所以如果你的资源文件放在WEB-INF下,会提示404错误

  • 相关阅读:
    win10家庭版转专业版并激活
    关于vcruntime140D.dll丢失问题
    phpMyAdmin使用教程
    在wamp中直接进入项目
    sublime Text3的使用
    wamp的安装配置
    PHP Web开发入门流程
    PHP与MySQL的亲密接触
    flex 布局 实现电商页面商品展示floor
    html css+div+jquery实现图片轮播
  • 原文地址:https://www.cnblogs.com/mytJava/p/12697899.html
Copyright © 2011-2022 走看看