Servlet 学习

Servlet 简介

Servlet 是 Sun 公司推出的一种基于 Java 的动态网站开发技术 。

通常把实现了 Servlet 接口Java 程序 叫做:Servlet

静态网页

  • 静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。
  • 静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。
  • 通过 JavaScript 实现的简单特性,同样也是静态页面。
  • ......

动态网页

  • 动态网页是相对于静态网页来说的,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
  • ......

Servlet 实现的功能

  • 读取客户端(浏览器)发送的显式的数据。(HTML 表单等)
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。(cookies 等)
  • 处理数据并生成结果。
  • 发送显式的数据(即文档)到客户端(浏览器)。(HTML 或 XML、二进制文件、Excel等)
  • 发送隐式的 HTTP 响应到客户端(浏览器)。(返回的类型、设置 cookies 和缓存参数等)

编写一个 Servlet 程序的步骤:

  1. 编写一个普通类
  2. 实现 Servlet 接口(如,继承 HttpServlet)
  3. 编写 Servlet 映射
  4. 配置 Tomcat 服务器
  5. 启动

Servlet 程序练习

RegisteredServlet

public class RegisteredServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");

        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbies = req.getParameterValues("hobby");

        System.out.println("========================");
        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbies));
        System.out.println("========================");

        req.getRequestDispatcher("/success.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

在 web.xml 中注册

<servlet>
    <servlet-name>RegisteredServlet</servlet-name>
    <servlet-class>com.wuli.servlet.RegisteredServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>RegisteredServlet</servlet-name>
    <url-pattern>/registered</url-pattern>
</servlet-mapping>
<div>
    <h2>注册</h2>
    
    <form action="${pageContext.request.contextPath}/registered" method="post">
        用户名:<input type="text" name="username"> <br>
        密码:<input type="password" name="password"> <br>
        邮箱:<input type="email" name="email"> <br>
        爱好:
        <input type="checkbox" name="hobby" value="唱歌">唱歌
        <input type="checkbox" name="hobby" value="跳舞">跳舞
        <input type="checkbox" name="hobby" value="rap">rap
        <input type="checkbox" name="hobby" value="篮球">篮球
        <br>
        <input type="submit">
    </form>
</div>

运行结果:

1658319788481

posted @   泡面喝完还有汤  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示