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 对应的类上添加注解来完成。这样做的好处是:
- 更加方便:不用像web.xml那样繁琐地编写 XML 文件;
- 更加简洁:去除了 XML 中大量的模板式代码和冗余的信息;
- 更加高效:在应用启动时只需扫描注解,而不必解析整个 XML 文件;
- 更加灵活:注解更容易被理解和调整。
虽然使用 @WebServlet 注解能够带来很多好处,但也有局限性,不能用于配置其它组件,并且无法适应更复杂的场景。在实际开发中,要根据需要来选择合适的方式来进行配置。