返回信息流小弟新入web上来就被servlet给懵逼了,如下:
1.配置文件xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>ch02.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/servlet/WelcomeServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.页面实现jsp
<html>
<head>
<title>Handing an GTTP Get Request</title>
</head>
<body>
<form action="servlet/WelcomeServlet" method="get">
<p>
click the button to invoke the servlet
</p>
<input type="submit" value="Get HTML Document"/>
</form>
</body>
</html>
3.servlet实现类
public class WelcomeServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>WelcomeServlet<TITLE></HEAD>");
out.println(" <BODY>");
out.println("<h1>Welcome to Servlets!</h1>");
out.println(" <BODY>");
out.println(" </HTML>");
out.flush();
out.close();
}
}
找不出哪里没对应的东西,但是就是没有响应doGet方法,最后不报错,而且返回空白页面,不知道是什么错。
这是一条镜像帖。来源:北邮人论坛 / java / #53041同步于 2016/9/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[讨论][问题]java web中servlet不响应doGet方法
CrazyBean
2016/9/18镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 HB0318 的大作中提到: 】
: 路径配置有问题吧,jsp里form的action的servlet前面加一个/试试
添加完/之后就报错404
端口配对了吗?还有你的web路径是否需要加工程名?即tomcat配置了不用加项目名?也就是确认是不是localhost:8888/项目名/servlet/xxxxx 项目名如果是tomcat自动配置的注意驼峰命名~
【 在 CrazyBean 的大作中提到: 】
: [upload=1][/upload]
: 添加完/之后就报错404
【 在 HB0318 的大作中提到: 】
: 端口配对了吗?还有你的web路径是否需要加工程名?即tomcat配置了不用加项目名?也就是确认是不是localhost:8888/项目名/servlet/xxxxx 项目名如果是tomcat自动配置的注意驼峰命名~
我试了一下,报错的确实因为路径中没有/ch02/这个项目名,而原因就是在<form action="servlet/WelcomeServlet" method="get">这句中的servlet前加了斜杠,所以去掉斜杠执行后的路径是http://localhost:8888/ch02/servlet/WelcomeServlet虽然不报错但是返回的是一个空页面,也就是问题中的没有响应到doGet方法,没有读取到值。
form action那路径最前面应该有“/”吧?
【 在 CrazyBean 的大作中提到: 】
: 小弟新入web上来就被servlet给懵逼了,如下:
: 1.配置文件xml
: <?xml version="1.0" encoding="UTF-8"?>
: ...................
【 在 bupt6394 的大作中提到: 】
: 代码没法看
: 发自「贵邮」
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>ch02.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/servlet/WelcomeServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.页面实现jsp
<html>
<head>
<title>Handing an GTTP Get Request</title>
</head>
<body>
<form action="servlet/WelcomeServlet" method="get">
<p>
click the button to invoke the servlet
</p>
<input type="submit" value="Get HTML Document"/>
</form>
</body>
</html>