Reputation: 393
I have a small application (HTML form, servlet as controller and jsp files) and i try to figure out why i cannot to forward the request from servlet to jsp files.
the problem is after submit from html, showed up "HTTP Status 404"
Application flow:
thanks!
project hierarchy: http://s23.postimg.org/kgt7r7lwb/Capture.jpg
main.html:
<html>
<title>Coupons categories</title>
<body>
<h1 align="center">Coupons categories</h1>
<form method="GET" action="Controller">
Select category
Type:
<select name="type" size=1>
<option value="restaurants">Restaurants</option>
<option value="electrics">Electrics</option>
<option value="hotels">Hotels</option>
</select>
<br><br>
<input type="Submit">
</form>
</body>
<html>
controller.java:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//PrintWriter out = response.getWriter();
//out.write(request.getPathInfo());
String path = request.getParameter("type");
if(path.equals("electrics"))
{
request.setAttribute("timestamp", new Date());
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/view/electrics.jsp");
dispatcher.forward(request, response);
}
else if(path.equals("hotels"))
{
request.setAttribute("timestamp", new Date());
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/view/hotels.jsp");
dispatcher.forward(request, response);
}
else if(path.equals("restaurants"))
{
request.setAttribute("timestamp", new Date());
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/view/restaurants.jsp");
dispatcher.forward(request, response);
}
}
electrics.jsp:
<%@ page language="java" contentType="text/html; charset=windows-1255"
pageEncoding="windows-1255"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Insert title here</title>
</head>
<body>
<h2>products list...</h2>
<%
Object ob = request.getAttribute("timestamp");
out.println(ob);
%>
</body>
</html>
web.xml:
<description>
CouponsServer
</description>
<display-name>Controller for CouponsServer</display-name>
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>uses.server.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/Controller</url-pattern>
</servlet-mapping>
</web-app>
update: Probably the problem is in the controller.java. When i try the following code, i got HTTP Status 500. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.write(request.getPathInfo());
}
Upvotes: 10
Views: 60160
Reputation: 2870
web.xml
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>uses.server.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/Controller</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Upvotes: 0
Reputation: 1
Your code is running fine in my local with the web.xml defined at the end with welcome list or even without it. Try your code running with the dynamic Web content version 2.5 where the web.xml is generated automatically.
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
<description>
CouponsServer
</description>
<display-name>Controller for CouponsServer</display-name>
<servlet>
<display-name>Controller</display-name>
<servlet-name>Controller</servlet-name>
<servlet-class>uses.server.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/Controller</url-pattern>
</servlet-mapping>
</web-app>
Upvotes: 0
Reputation: 2870
Try this
request.getRequestDispatcher("/view/electrics.jsp").forward(req,res);
Upvotes: 10