演習課題「レビューログ:編集画面を作ろう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、「myreview」というディレクトリに、Servlet・JSPを使用したWebアプリケーションの雛形が用意してあります。
このうちのEditServlet.javaとedit.jspを修正して、レビュー編集画面を作成してください。編集画面の表示には「log.jsp」を使って、「title」「content」カラムを編集します。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#07:メモの編集フォームを表示する
ここでは、メモを編集するフォームを表示するプログラムを作成します。指定のデータを読み込んで、フォームとして表示しましょう。
(tomcat/webapps/mymemo/EditServlet.java)import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
public class EditServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int postId = Integer.parseInt(request.getParameter("id"));
if (request.getAttribute("message") == null) {
request.setAttribute("message", "Edit your post " + postId);
}
String url = "jdbc:mysql://localhost/memo";
String user = "root";
String password = "";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
String sql = "SELECT * FROM posts WHERE id = ?";
try (Connection connection = DriverManager.getConnection(url, user, password);
PreparedStatement statment = connection.prepareStatement(sql)) {
statment.setInt(1, postId);
ResultSet results = statment.executeQuery();
while (results.next()) {
String id = results.getString("id");
request.setAttribute("id", id);
String title = results.getString("title");
request.setAttribute("title", title);
String content = results.getString("content");
request.setAttribute("content", content);
}
} catch (Exception e) {
request.setAttribute("message", "Exception:" + e.getMessage());
}
String view = "/WEB-INF/views/edit.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(view);
dispatcher.forward(request, response);
}
}
(tomcat/webapps/WEB-INF/views/edit.jsp)<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Java - paiza</title>
<style>body {padding: 30px;}</style>
</head>
<body>
<h1>メモ編集</h1>
<% String message = (String)request.getAttribute("message");%>
<p><%= message %></p>
<form action='update' method='get'>
<input type='hidden' name='id' value='<%= request.getAttribute("id") %>'>
<label for='title'>タイトル</label><br>
<input type='text' name='title' value='<%= request.getAttribute("title") %>'>
<p></p>
<label for='content'>本文</label><br>
<textarea name='content' cols='40' rows='10'><%= request.getAttribute("content") %></textarea>
<p></p>
<button type='submit'>保存する</button>
<a href='show?id=<%= request.getAttribute("id") %>'>キャンセル</a>
</form>
</body>
</html>
- Javaの道>Servlet・JSP
https://www.javaroad.jp/servletjsp/index.html
- Servletアプリ開発:目次 - Web系開発メモ
http://web-dev.hatenablog.com/entry/java/servlet/dev-restful-app/table-of-contents