这是我的
index.jsp
代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Index JSP File</title>
</head>
<body>
<form action="/IndexController" method="get">
<table>
<tr><td>Enter Your Name :</td> <td><input type="text" name="name"/></td></tr>
<tr><td><input type="submit" value="Submit" /></td></tr>
</table>
</form>
</body>
</html>
这是我的
IndexController
Servlet 代码:
public class IndexController extends HttpServlet {
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uname = request.getParameter("name");
response.sendRedirect("welcome.jsp?name="+uname);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
}
这是我的
welcome.jsp
页面代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<% String fname = request.getParameter("uname");%>
<h1>Welcome to JSP World, <%=fname%></h1>
</body>
</html>
当我通过 Java EE 运行时运行此程序时,我得到了一个
index.jsp
页面,但是在输入名称并单击提交按钮后,出现以下错误:
错误 404 - 未找到 此服务器上没有上下文匹配或处理此请求。该服务器已知的上下文是:JSPExample(/JSPExample)
还要将welcome.jsp 中的行
<% String fname = request.getParameter("**uname**");%>
更改为 <% String fname = request.getParameter("**name**");%>
,因为您的参数名称是 name
response.sendRedirect("**welcome.jsp?name="+uname);**
:)
编辑 web.xml 并添加 servlet 映射
<servlet>
<servlet-name>IndexController</servlet-name>
<servlet-class>IndexController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexController</servlet-name>
<url-pattern>/IndexController</url-pattern>
</servlet-mapping>
在 Eclipse 中,如果遇到此问题,只需使用其他名称创建一个新的索引文件即可。然后终止最后一个正在运行的服务器,并启动一个新服务器,运行新的index..文件。我用这种方式解决了这个问题,最后我删除了新的索引文件并运行我的第一个索引文件。