VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Java教程 >
  • day13-Servlet03

Servlet03

11.练习

快捷键-可以快速地在访问的文件件切换

ctrl+alt+向左箭头:回到上次访问的位置

ctrl+alt+向右箭头:回到下一步访问的位置

11.1CatServlet

image-20221108190559392

首先创建项目servlet,配置好Tomcat,添加web应用支持。在web目录下面的WEB-INF目录下创建lib目录,在Tomcat安装包的lib目录中找到servlet-api,并添加到idea的web目录下面的WEB-INF/lib目录,选择引用为库文件

image-20221108192728344

在src目录下创建目录,编写CatServlet类:


 
package servlet;
 
 
 
import javax.servlet.*;
 
import javax.servlet.http.HttpServletRequest;
 
import java.io.IOException;
 
 
 
public class CatServlet implements Servlet {
 
public int count = 0;
 
 
 
@Override
 
public void init(ServletConfig servletConfig) throws ServletException {
 
 
 
}
 
 
 
@Override
 
public ServletConfig getServletConfig() {
 
return null;
 
}
 
 
 
@Override
 
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
 
count++;//每次访问service方法,count累加
 
System.out.println("该servlet访问次数=" + count);
 
//获取请求的方式
 
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
 
String method = httpServletRequest.getMethod();
 
if (method.equals("GET")) {
 
doGet();
 
} else if (method.equals("POST")) {
 
doPost();
 
}
 
}
 
 
 
public void doGet() {
 
System.out.println("CatServlet doGet()...");
 
}
 
 
 
public void doPost() {
 
System.out.println("CatServlet doPost()...");
 
}
 
 
 
@Override
 
public String getServletInfo() {
 
return null;
 
}
 
 
 
@Override
 
public void destroy() {
 
 
 
}
 
}

在web.xml文件中进行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>CatServlet</servlet-name>
 
<servlet-class>servlet.CatServlet</servlet-class>
 
</servlet>
 
<servlet-mapping>
 
<servlet-name>CatServlet</servlet-name>
 
<url-pattern>/cat</url-pattern>
 
</servlet-mapping>
 
</web-app>

在WEB-INF目录下编写一个html,用于测试


 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
<meta charset="UTF-8">
 
<title>login</title>
 
</head>
 
<body>
 
<form action="http://localhost:8080/servlet/cat" method="get">
 
name: <input type="text"/><br/><br/>
 
<input type="submit" value="login"/>
 
</form>
 
</body>
 
</html>

点击启动Tomcat,在浏览器中输入地址:http://localhost:8080/servlet/login.html

点击login按钮,成功跳转到CatServlet中:

image-20221108194726469 image-20221108194829360

后台输出:(如果表单方式改变了,仍然调用的是旧的访问方法,点击保存html,并刷新浏览器页面即可解决)

image-20221108194942684

11.2DogServlet

image-20221108213658244

在11.1的项目框架上进行编程

首先在src目录下创建DogServlet类


 
package servlet;
 
 
 
import javax.servlet.ServletException;
 
import javax.servlet.http.HttpServlet;
 
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;
 
import java.io.IOException;
 
 
 
public class DogServlet extends HttpServlet {
 
private int getCount = 0;
 
private int postCount = 0;
 
 
 
@Override
 
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
getCount++;
 
System.out.println("getCount=" + getCount);
 
System.out.println("DogServlet-访问doGet()");
 
}
 
 
 
@Override
 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
postCount++;
 
System.out.println("postCount=" + postCount);
 
System.out.println("DogServlet-访问doPost()");
 
}
 
}

注意:这里没有重写service方法,因此当浏览器请求DogServlet时,会去父类HttpServlet类中去找调用的service方法,在HttpServlet类中的service方法会根据请求类型如get、post去调用当前运行类型(即DogServlet)的doPost、doGet方法,因此在自己创建的Servlet中不用判断请求方式

在web.xml文件中配置该Servlet:


 
<servlet>
 
<servlet-name>DogServlet</servlet-name>
 
<servlet-class>servlet.DogServlet</servlet-class>
 
</servlet>
 
<servlet-mapping>
 
<servlet-name>DogServlet</servlet-name>
 
<url-pattern>/dog</url-pattern>
 
</servlet-mapping>

修改之前的login.html文件


 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
<meta charset="UTF-8">
 
<title>login</title>
 
</head>
 
<body>
 
<form action="http://localhost:8080/servlet/dog" method="post">
 
name: <input type="text"/><br/><br/>
 
<input type="submit" value="login"/>
 
</form>
 
</body>
 
</html>

点击redeploy Tomcat,在浏览器输入地址http://localhost:8080/servlet/login.html,点击login按钮,成功跳转到DogServlet

image-20221108201510215 image-20221108201533054

将login.html文件中表单提交方式反复该为post或者get,多次访问,后台输出如下:

(如果表单方式改变了,仍然调用的是旧的访问方法,点击保存html,并刷新浏览器页面即可解决)

image-20221108202231558

11.3PigServlet

image-20221108214752042

在11.1的项目框架上进行编程

在src目录下编写PigServlet


 
package servlet;
 
 
 
import javax.servlet.ServletException;
 
import javax.servlet.annotation.WebServlet;
 
import javax.servlet.http.HttpServlet;
 
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;
 
import java.io.IOException;
 
 
 
@WebServlet(urlPatterns = {"/pig1", "/pig2"},loadOnStartup = 1)
 
public class PigServlet extends HttpServlet {
 
private int getCount = 0;
 
private int postCount = 0;
 
 
 
@Override
 
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
getCount++;
 
System.out.println("PigServlet-访问doGet()-get访问次数=" + getCount);
 
System.out.println("客户端地址="+req.getRemoteAddr());
 
}
 
 
 
@Override
 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
postCount++;
 
System.out.println("PigServlet-访问doPost()-post访问次数=" + postCount);
 
System.out.println("客户端地址="+req.getRemoteAddr());
 
}
 
}

修改login.html文件


 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
<meta charset="UTF-8">
 
<title>login</title>
 
</head>
 
<body>
 
<form action="http://localhost:8080/servlet/pig1" method="get">
 
name: <input type="text"/><br/><br/>
 
<input type="submit" value="login"/>
 
</form>
 
</body>
 
</html>

点击redeploy Tomcat,在浏览器输入地址http://localhost:8080/servlet/login.html,点击login按钮,成功跳转到PigServlet

将login.html文件中表单提交方式反复改为post或者get,多次访问,后台输出如下:

(如果表单方式改变了,仍然调用的是旧的访问方法,点击保存html,并刷新浏览器页面即可解决)

image-20221108204256119

11.4浏览器访问过程

image-20221108191355809 image-20221108210447036

出处:https://www.cnblogs.com/liyuelian/p/16871376.html

相关教程