Skip to content

Instantly share code, notes, and snippets.

@kamekoopa
Created September 11, 2012 05:15
Show Gist options
  • Save kamekoopa/3696114 to your computer and use it in GitHub Desktop.
Save kamekoopa/3696114 to your computer and use it in GitHub Desktop.
ServletとPlay2.0.3のベンチマークで使ったファイル
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
public class Echo extends Controller {
public static Result echo(String mes){
return ok(mes);
}
}
package jp.co.ninja.maitani.sample_servlet.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EchoServlet extends HttpServlet {
private static final long serialVersionUID = -7967648691027432551L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String mes = req.getParameter("mes");
resp.getWriter().write(mes);
}
}
package models;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
public class Users {
private final Connection con;
public Users(Connection con){
this.con = con;
}
public User findUser(int id) throws SQLException{
try (PreparedStatement p = this.con.prepareStatement("select * from USERS where id = ?")) {
p.setInt(1, id);
try (ResultSet resultSet = p.executeQuery()) {
while(resultSet.next()){
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
return new User(id, name, age);
}
}
}
return null;
}
public List<User> searchUsers() throws SQLException {
try (PreparedStatement p = this.con.prepareStatement("select * from USERS")) {
try (ResultSet resultSet = p.executeQuery()) {
List<User> users = new LinkedList<>();
while(resultSet.next()){
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
users.add(new User(id, name, age));
}
return users;
}
}
}
public static class User{
private final int id;
private final String name;
private final int age;
private User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return this.id;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
return sb.append("id:"+this.id+" ").append("name:"+this.name+" ").append("age:"+this.age).toString();
}
public ObjectNode toJson(){
ObjectNode user = JsonNodeFactory.instance.objectNode();
user.put("id" , this.id);
user.put("name", this.name);
user.put("age" , this.age);
return user;
}
}
}
package jp.co.ninja.maitani.sample_servlet.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jp.co.ninja.maitani.sample_servlet.models.Users;
import jp.co.ninja.maitani.sample_servlet.models.Users.User;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
public class UserListServlet extends HttpServlet {
private static final long serialVersionUID = -7967648691027432551L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
final List<User> users;
try (Connection c = DriverManager.getConnection("jdbc:mysql://localhost/sample","appuser","pass")) {
users = new Users(c).searchUsers();
} catch (SQLException e) {
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "server error");
result.put("message", "sql execution failure - " + e.getMessage());
resp.setStatus(500);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}
if(users.isEmpty()){
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "not found");
result.put("message", "user not found");
resp.setStatus(404);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}else{
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result", "found");
ArrayNode userList = JsonNodeFactory.instance.arrayNode();
for(User user : users){
userList.add(user.toJson());
}
result.put("users" , userList);
resp.setStatus(200);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}
}
}
package controllers;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Random;
import models.Users.User;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
import play.db.DB;
import play.mvc.Controller;
import play.mvc.Result;
public class Users extends Controller {
public static Result index() {
Random random = new Random();
final int id = random.nextInt(10) + 1;
final User user;
try (Connection c = DB.getConnection()) {
user = new models.Users(c).findUser(id);
}catch (SQLException e) {
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "server error");
result.put("message", "sql execution failure - " + e.getMessage());
return internalServerError(result);
}
if(user == null){
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "not found");
result.put("message", "specified id["+id+"] not found");
return notFound(result);
}else{
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result", "found");
result.put("user" , user.toJson());
return ok(result);
}
}
public static Result list() {
final List<models.Users.User> users;
try (Connection c = DB.getConnection()) {
users = new models.Users(c).searchUsers();
}catch (SQLException e) {
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "server error");
result.put("message", "sql execution failure - " + e.getMessage());
return internalServerError(result);
}
if(users.isEmpty()){
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "not found");
result.put("message", "user not found");
return notFound(result);
}else{
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result", "found");
ArrayNode userList = JsonNodeFactory.instance.arrayNode();
for(models.Users.User user : users){
userList.add(user.toJson());
}
result.put("users" , userList);
return ok(result);
}
}
}
package jp.co.ninja.maitani.sample_servlet.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jp.co.ninja.maitani.sample_servlet.models.Users;
import jp.co.ninja.maitani.sample_servlet.models.Users.User;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
public class UsersServlet extends HttpServlet {
private static final long serialVersionUID = -7967648691027432551L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Random random = new Random();
int id = random.nextInt(10) + 1;
final User user;
try (Connection c = DriverManager.getConnection("jdbc:mysql://localhost/sample","appuser","pass")) {
user = new Users(c).findUser(id);
} catch (SQLException e) {
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "server error");
result.put("message", "sql execution failure - " + e.getMessage());
resp.setStatus(500);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}
if(user == null){
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result" , "not found");
result.put("message", "specified id["+id+"] not found");
resp.setStatus(404);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}else{
ObjectNode result = JsonNodeFactory.instance.objectNode();
result.put("result", "found");
result.put("user" , user.toJson());
resp.setStatus(200);
resp.setContentType("application/json");
resp.getWriter().write(result.toString());
return;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment