我建了一个Web工程,分别写了一个jsp和servlet,但是进入jsp页面跳转到servlet时,就会报404错,求助
servlet代码如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)thr...
servlet代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//PrintWriter out = response.getWriter();
PrintWriter pw = response.getWriter();
pw.println(request.getParameter("param1"));
pw.println("<br>");
pw.println(request.getParameter("param2"));
pw.println("<br>");
pw.println(request.getParameter("param3"));
pw.println("<br>");
pw.flush();
pw.close();
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ThreeParams</servlet-name>
<servlet-class>ThreeParams</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ThreeParams</servlet-name>
<url-pattern>/servlet/ThreeParams</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
jsp代码如下:
<form method="post" action="/servlet/ThreeParams" name="ThreeParams">
<br>
param1:
<input type="text" name="param1" value=""><br>
param2:
<input type="text" name="param2" value=""><br>
param3:
<input type="text" name="param3" value=""><br>
<input type="submit" value="传送">
<input type="reset" value="清除">
</form> 展开
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//PrintWriter out = response.getWriter();
PrintWriter pw = response.getWriter();
pw.println(request.getParameter("param1"));
pw.println("<br>");
pw.println(request.getParameter("param2"));
pw.println("<br>");
pw.println(request.getParameter("param3"));
pw.println("<br>");
pw.flush();
pw.close();
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ThreeParams</servlet-name>
<servlet-class>ThreeParams</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ThreeParams</servlet-name>
<url-pattern>/servlet/ThreeParams</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
jsp代码如下:
<form method="post" action="/servlet/ThreeParams" name="ThreeParams">
<br>
param1:
<input type="text" name="param1" value=""><br>
param2:
<input type="text" name="param2" value=""><br>
param3:
<input type="text" name="param3" value=""><br>
<input type="submit" value="传送">
<input type="reset" value="清除">
</form> 展开
7个回答
展开全部
首先404错误时找不到你访问的主页,
在确认tomcat 启动的前提下:
1.action="/servlet/ThreeParams" 改为: action="/工程名/servlet/ThreeParams"
2.在servlet的dopost加入调用doget的代码
doGet(request,response);
3.修改body代码如下:
out.println("</BODY>");
request.setCharacterEncoding("utf-8");
out.println("param1:"+request.getParameter("param1")+"<br>");
out.println("param2:"+request.getParameter("param2")+"<br>");
out.println("param3:"+request.getParameter("param3")+"<br>");
out.println("</BODY>");
更多追问追答
追问
jsp代码报错。。。。我jsp代码要求是表格哦
追答
我都调试出来了,还有什么错呢,要是需要表格,body中的代码修改你编写的代码就可以了
展开全部
你的配置都有问题,<serverlet-class>这里是你serverlet类的完全限定名(就是包名.类名)</serverlet-class>你先把这个改了看看还有就是你的请求方式也有问题,你用的post请求怎么能去调用serverlet的doget方法呢.
追问
包是默认包,然后我加了dopost里边加了doget方法
追答
你jsp里面是发起的post请求所以他就会调用你serverlet里面的dopost方法,你在dopost方法里面调用doget方法没错,但是首先要成功调用到你的dopost方法啊。还有你配置文件是有问题,你改下,再看看。实在不行,你就不用手动写了,直接用myeclipse直接创建个serverlet,配置文件就不用你写了,直接在servlet里面写的代码就行了。
还有就是你访问的路径地址有问题,你看下你地址栏地址是否正确,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<servlet-name>ThreeParams</servlet-name>
<servlet-class>ThreeParams</servlet-class>
这个是要指定到类的绝对路径的。包名.类名的格式还有就是你jsp form method="post" 执行的servlet的doPost方法
<servlet-class>ThreeParams</servlet-class>
这个是要指定到类的绝对路径的。包名.类名的格式还有就是你jsp form method="post" 执行的servlet的doPost方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
路径问题,试下加绝对路径../servlet/ThreeParams
更多追问追答
追问
是用的绝对路径啊
追答
ThreeParams
这个类有包没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<form method="post" action="/servlet/ThreeParams" name="ThreeParams">
在/servlet/ThreeParams前面加上工程名。。。
在/servlet/ThreeParams前面加上工程名。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询