文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaWeb 中Hello Servlet如何使用

2023-06-20 16:50

关注

JavaWeb 中Hello Servlet如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Servlet 概述

写一个普通类实现servlet 这个接口

把写好的servlet 放进服务器。

sun公司给出了两个默认的实现类 HttpServlet 和 GenericServlet

Hello Servlet

工程结构

JavaWeb 中Hello Servlet如何使用

1、创建一个maven 项目 添加web框架(将web.xml 换成最新的4.0 后面有完整配置文件) 配置tomcat
2、导入依赖
dependencies>    <!-- 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>    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>jsp-api</artifactId>      <version>2.0</version>    </dependency>  </dependencies>
3、编写一个Servlet程序 编写一个普通类实现HttpServlet接口
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;public class HelloServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        PrintWriter writer = resp.getWriter();        writer.print("hello Servlet");        System.out.println("");    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        doGet(req, resp);    }}
4、编写Servlet 的映射

为什么需要映射?我们是不是需要通过浏览器去访问,而浏览器需要连接web服务器,需要在web 服务器注册我们写的servlet,还需要给它一个浏览器能够访问的路径。

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         version="4.0">    <servlet>        <servlet-name>hello</servlet-name>        <servlet-class>com.crush.servlet.HelloServlet</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>hello</servlet-name>        <url-pattern>/hello</url-pattern>    </servlet-mapping></web-app>

测试:

JavaWeb 中Hello Servlet如何使用

Servlet的运行过程

Servlet程序是由Web服务器调用的,Web服务器收到客户端的Servlet访问请求后:

JavaWeb 中Hello Servlet如何使用

5、Mapping 问题:

一个Servlet 可以指定一个映射路径

<servlet>    <servlet-name>hello</servlet-name>    <servlet-class>com.crush.servlet.HelloServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>hello</servlet-name>    <url-pattern>/hello</url-pattern></servlet-mapping>

一个Servlet 可以指定多个映射路径

<servlet>    <servlet-name>hello</servlet-name>    <servlet-class>com.crush.servlet.HelloServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>hello</servlet-name>    <url-pattern>/hello</url-pattern></servlet-mapping><servlet-mapping>    <servlet-name>hello</servlet-name>    <url-pattern>/hello2</url-pattern></servlet-mapping>

一个Servlet 可以指定通用映射路径

<servlet>    <servlet-name>hello</servlet-name>    <servlet-class>com.crush.servlet.HelloServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>hello</servlet-name>    <url-pattern>/hello.*</url-pattern></servlet-mapping>

默认请求路径

<servlet>    <servlet-name>helloServlet</servlet-name>    <servlet-class>com.crush.servlet.HelloServletDays</servlet-class></servlet>    <servlet-mapping>    <servlet-name>helloServlet</servlet-name>    <url-pattern>public class ErrorServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        PrintWriter writer = resp.getWriter();        writer.print("404");    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        doGet(req, resp);    }}

2、配置映射路径

<servlet>    <servlet-name>error</servlet-name>    <servlet-class>com.crush.servlet.ErrorServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>error</servlet-name>    <url-pattern>/*</url-pattern></servlet-mapping>

测试:访问不存在的路径 会直接到访问我们自己写的ErrorServlet 访问其他的具体的路径仍然不变

JavaWeb 中Hello Servlet如何使用

关于JavaWeb 中Hello Servlet如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯