Servlet 学习
Servlet 简介
Servlet 是 Sun 公司推出的一种基于 Java 的动态网站开发技术 。
通常把实现了 Servlet 接口的 Java 程序 叫做:Servlet
静态网页
- 静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。
- 静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。
- 通过 JavaScript 实现的简单特性,同样也是静态页面。
- ......
动态网页
- 动态网页是相对于静态网页来说的,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
- ......
Servlet 实现的功能
- 读取客户端(浏览器)发送的显式的数据。(HTML 表单等)
- 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。(cookies 等)
- 处理数据并生成结果。
- 发送显式的数据(即文档)到客户端(浏览器)。(HTML 或 XML、二进制文件、Excel等)
- 发送隐式的 HTTP 响应到客户端(浏览器)。(返回的类型、设置 cookies 和缓存参数等)
编写一个 Servlet 程序的步骤:
- 编写一个普通类
- 实现 Servlet 接口(如,继承 HttpServlet)
- 编写 Servlet 映射
- 配置 Tomcat 服务器
- 启动
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>
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?