jspでpostした内容を改めてjspで表示する

.jsp

<body>
	Hello, <%= request.getAttribute("userName") %>
	
	<form method="post" action="./HelloServlet">
	please type your name:<input type="text" name="name">
	<button type="submit">submit</button>
	</form>
</body>

servlet
doGetとdoPost userNameがnullから空の時はuserName == “Guest”

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// response.getWriter().append("Served at: ").append(request.getContextPath());
		String name = (String) request.getAttribute("userName");
		
		if (name == null || "".equals(name)){
			request.setAttribute("userName", "Guest");
		}
		
		
		String view = "/WEB-INF/view/index.jsp";
		RequestDispatcher dispatcher = request.getRequestDispatcher(view); 
		
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("utf-8");
		
		String name = request.getParameter("name");
		request.setAttribute("userName", name);
		
		doGet(request, response);
	}

なるほど、servletの基本動作はわかってきました。

こういう書き方もできる。

<body>
<% String userName = (String) request.getAttribute("userName"); %>
	Hello, <%= userName %> 
	
	<% if("Guest".equals(userName)) {%>>
	<form method="post" action="./HelloServlet">
	please type your name:<input type="text" name="name">
	<button type="submit">submit</button>
	</form>
	<% } %>
</body>

とりあえずgit init, git add, git commit, git remote add, git pushしておきましょう。

eclipseはokなんだが、これをvagrantのtomcatで動かしたい。