Servlet简介和环境设置

举报
久绊A 发表于 2023/08/11 13:48:03 2023/08/11
【摘要】 Servlet 简介Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。总而言之,Servlet 是用于处理 Web 请求和响应的标准 Java 技术,是 Web ...

Servlet 简介

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

总而言之,Servlet 是用于处理 Web 请求和响应的标准 Java 技术,是 Web 应用程序开发不可或缺的组成部分。

Servlet 环境设置

导入jar包

File-> Project Structure-> libraries 选择“+”,选择java-> 找到tomcat路径下的lib文件夹里选择servlet-api 与 jsp-api;

web.xml文件配置

在 WEB-INF 目录下创建 web.xml 文件;


<servlet>
	<!-- Servlet别名 自定义-->
  <servlet-name>TestServlet</servlet-name>
  <!--servlet的类全名-->
  <servlet-class>ccc.com.servlet.testServlet</servlet-class>
</servlet>

<servlet-mapping>
  <!-- 将Servlet和URL绑定 -->
	<!--给Servlet提供(映射)一个可供客户端访问的URI-->
  <servlet-name>TestServlet</servlet-name>
  <!--必须和servlet中的name相同-->
  <url-pattern>/test</url-pattern>
  <!-- servlet的映射路径(访问serclet的名称) -->
</servlet-mapping>

在src文件下新建包 ccc.com.servlet,在里面新建一个类 testServlet;

testServlet类里继承HttpServlet,代码如下:

public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        System.out.println(request.getParameter("id"));
    }
}

在index.jsp里面写入以下代码注意name属性要对应;

<form action="/test" method="get">
    <input type="text" name="id">
    <input type="submit" value="提交">
  </form>

然后我们启动服务器进入浏览器页面

找到Run-> Edit Configurations ->右边找到Deployment

把他改成/


重新启动服务器然后输入框里随便输入字符串点击提交,就可以发现已经在控制台打印出来了;

要设置 servlet 返回数据,可以调用 HttpServletResponse 对象的方法,例如:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 设置响应内容类型
    response.setContentType("text/html;charset=UTF-8");

    // 获取输出流对象
    PrintWriter out = response.getWriter();
    try {
        // 将响应信息输出到客户端浏览器
        out.println("<html>");
        out.println("<head>");
        out.println("<title>成功</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>成功</h1>");
        out.println("</body>");
        out.println("</html>");
    } finally {
        // 关闭输出流对象
        out.close();
    }
}

结果如下:

@WebServlet注解配置

这种方式的话比较简单,只需要添加一个@WebServlet;

@WebServlet(name = "TestServlet",urlPatterns = "/test")
    
public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println(request.getParameter("id"));
    }
}

web.xml文件的方式和@WebServlet区别

相比于 web.xml 文件的方式,在使用 @WebServlet 注解时,不再需要手动编写 XML 文件来描述 Servlet 的配置信息,而是通过直接在 Servlet 对应的类上添加注解来完成。这样做的好处是:

  1. 更加方便:不用像 web.xml 那样繁琐地编写 XML 文件;
  2. 更加简洁:去除了 XML 中大量的模板式代码和冗余的信息;
  3. 更加高效:在应用启动时只需扫描注解,而不必解析整个 XML 文件;
  4. 更加灵活:注解更容易被理解和调整。

虽然使用 @WebServlet 注解能够带来很多好处,但也有局限性,不能用于配置其它组件,并且无法适应更复杂的场景。在实际开发中,要根据需要来选择合适的方式来进行配置。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。