以下は、単純なサーブレット (Process.java)、JSP ページ (index.jsp)、およびモデル (Model.java) のコードです。
index.jsp :
<%@ page import="com.example.*" %>
<html>
<head>
<title> Myapp </title>
</head>
<body>
<form action="process.do" method="POST">
UserName: <input type="text" name="username">
<br>
UserID: <input type="text" name="userid">
<br>
<input type="submit">
<br>
<%
Model m = (Model) request.getAttribute("model");
if( m != null) {
out.println("Username: " + m.getUserName() );
out.println("UserID: " + m.getUserID() );
}
%>
</form>
</body>
</html>
Process.java :
package com.example;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Process extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
Model m = new Model();
m.setUserName( request.getParameter("username") );
m.setUserID( Integer.parseInt( request.getParameter("userid") ) );
request.setAttribute("model", m);
response.sendRedirect( request.getRequestURI() );
}
}
Model.java :
package com.example;
public class Model {
private String userName = "";
private int userID = -1;
public void setUserName(String userName) {
this.userName = userName;
}
public void setUserID(int userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public int getUserID() {
return userID;
}
}
web.xml :
<servlet>
<servlet-name>Process</servlet-name>
<servlet-class>com.example.Process</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Process</servlet-name>
<url-pattern>/process.do</url-pattern>
</servlet-mapping>
私は Tomcat7 を使用しており、このアプリをコンテキスト /myapp にデプロイしました。index.jsp ページを正しく表示できますが、フォームを送信すると以下のエラーが発生します。
HTTP Status 405 - HTTP method GET is not supported by this URL