终于把之前的项目算是写完了,不过因为逻辑十分简单,就简单的使用了JSP+JavaBean的开发方式,但是也深深感觉到自己的servlet学的什么也不是,所以决定写一个非常简单的用户管理的小项目来练手;也算是对于新的IDE的熟悉过程,下面是代码,实时更新
先写实体类Users:
package com.test.entity;
/**
* Created by lenovo on 2016/9/14.
*/
public class Users {
private int id;
private String username;
private String password;
private String content;
private String photo;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
}
servlet代码:
package com.test.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.test.dao.UsersDao;
import com.test.entity.Users;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;
import static java.lang.System.out;
/**
* Created by sjz on 2016/9/14.
*/
public class UsersServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doGet(request,response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String method = request.getParameter("method");
out.println(method);
switch (method){
case "insert" :
insert(request,response);
break;
case "delete" :
delete(request,response);
break;
case "toUpdate":
int id3 = Integer.parseInt(request.getParameter("id"));
Users user3 = UsersDao.selectById(id3);
request.setAttribute("user",user3);
request.getRequestDispatcher("../show.jsp").forward(request,response);
case "update" :
System.out.println(request.getPart("id")+"aaaa");
int id = Integer.parseInt(request.getParameter("id"));
update(request,response,id);
break;
case "select" :
//select(request,response);
int id2 = Integer.parseInt(request.getParameter("id"));
Users user2 = UsersDao.selectById(id2);
request.setAttribute("user",user2);
request.getRequestDispatcher("../show.jsp").forward(request,response);
break;
case "list" :
//list(request,response);\
List<Users> list = UsersDao.select();
request.setAttribute("list",list);
request.getRequestDispatcher("../list.jsp").forward(request,response);
break;
}
}
private void insert(HttpServletRequest request, HttpServletResponse response) {
SmartUpload su = new SmartUpload();
JspFactory _jspxFactory = null;
PageContext pageContext = null;
_jspxFactory = JspFactory.getDefaultFactory();
pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true);
try {
su.initialize(pageContext);
su.upload();
PrintWriter out = response.getWriter();
out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>");
String username = su.getRequest().getParameter("username");
String password = su.getRequest().getParameter("password");
String content = su.getRequest().getParameter("content");
File file = su.getFiles().getFile(0);
if (file.isMissing())
System.out.println("未选择文件");
String photo = file.getFileName();
String path = "/picture";
path = path + "/" + photo;
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);
System.out.println(photo);
Users user = new Users();
user.setUsername(username);
user.setPassword(password);
user.setContent(content);
user.setPhoto(photo);
if(UsersDao.insert(user)){
out.println("成功");
response.setHeader("refresh", "3;UsersServlet?method=list");
} else{
out.println("失败");
response.setHeader("refresh", "3;UsersServlet?method=insert");
}
} catch (ServletException e) {
e.printStackTrace();
} catch (SmartUploadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void delete(HttpServletRequest request, HttpServletResponse response) {
int id = Integer.parseInt(request.getParameter("id"));
try{
if(UsersDao.delete(id)){
out.println("成功");
request.getRequestDispatcher("UsersServlet?method=list").forward(request,response);
} else{
out.println("失败");
request.getRequestDispatcher("../list.jsp").forward(request,response);
}
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void update(HttpServletRequest request, HttpServletResponse response, int id) {
SmartUpload su = new SmartUpload();
JspFactory _jspxFactory = null;
PageContext pageContext = null;
_jspxFactory = JspFactory.getDefaultFactory();
pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true);
try {
su.initialize(pageContext);
su.upload();
PrintWriter out = response.getWriter();
out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>");
String username = su.getRequest().getParameter("username");
String password = su.getRequest().getParameter("password");
String content = su.getRequest().getParameter("content");
File file = su.getFiles().getFile(0);
if (file.isMissing())
System.out.println("未选择文件");
String photo = file.getFileName();
String path = "/picture";
path = path + "/" + photo;
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);
System.out.println(photo);
Users user = new Users();
user.setUsername(username);
user.setPassword(password);
user.setContent(content);
user.setPhoto(photo);
if(UsersDao.update(user,id)){
out.println("成功");
response.setHeader("refresh", "3;UsersServlet?method=list");
} else{
out.println("失败");
response.setHeader("refresh", "3;UsersServlet?method=insert");
}
} catch (ServletException e) {
e.printStackTrace();
} catch (SmartUploadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void select(HttpServletRequest request, HttpServletResponse response) {
}
private void list(HttpServletRequest request, HttpServletResponse response) {
}
}
add.jsp:
<%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2016/9/14
Time: 16:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户添加页</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
%>
<form action="/servlet/UsersServlet?method=insert" method="post"enctype="multipart/form-data">
<!--<input type="hidden" name="method" value="insert">-->
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name="password"><br>
简 介:<textarea name="content" placeholder="在这里输入您的简介"></textarea><br>
照片:<input type="file" name="photo"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
list.jsp:
<%@ page import="com.test.entity.Users" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2016/9/18
Time: 9:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<tr>
<td>用户ID</td>
<td>用户名</td>
<td>用户简介</td>
<td>照片</td>
</tr><br>
<%
List<Users> list = (List<Users>) request.getAttribute("list");
for (int i=0;list!=null&&i<list.size();i++){
%>
<tr>
<td><%=list.get(i).getId()%></td>
<td><%=list.get(i).getUsername()%></td>
<td><%=list.get(i).getContent()%></td>
<td><img src="../picture/<%=list.get(i).getPhoto()%>" style="width:100px;height:100px;"></td>
<a href="UsersServlet?method=select&id=<%=list.get(i).getId()%>">修改</a>
<a href="UsersServlet?method=delete&id=<%=list.get(i).getId()%>">删除</a>
</tr>
<br>
<%
}
%>
</body>
</html>
show.jsp:
<%@ page import="com.test.entity.Users" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2016/9/18
Time: 9:27
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户详情页</title>
</head>
<body>
<%
Users user = (Users) request.getAttribute("user");
%>
<form action="/servlet/UsersServlet?method=update&id=<%=user.getId()%>" method="post"enctype="multipart/form-data">
<input type="hidden" name="method" value="update">
用户名:<input name="username" type="text" value="<%=user.getUsername()%>"><br>
密码:<input name="password" type="password" value="<%=user.getPassword()%>"><br>
简介:<textarea name="content"><%=user.getContent()%></textarea><br>
照片:<img src="../picture/<%=user.getPhoto()%>" style="width:100px;height:100px;">
<input type="file" name="photo"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
写完这个小项目真的成就感一级强烈,终于把Servlet页面跳转的门给进去了,所有代码逻辑性也并不是特别强烈,现在看来不应该写用户管理,新闻管理的话会更好,但是已经写完了,就可以进行下一步的学习了。全部代码都放在这里以供以后自己写东西参考