基本到這的話“發現”頁、“查找”頁、“發佈”頁的功能就已經完善完全了,接下來就繼續處理一下“我的”頁面剩餘還未完成的功能——修改密碼、查看我的分享、查看我的日記、查看我的收藏、查看iShare相關。在開始寫Android實現之前要先準備一下後臺文件
- 修改密碼
- 從info表查詢我的分享
- 從info表查詢我的日記
- 從收藏表focus查詢我的收藏
1. 修改密碼,通過參數獲取用戶的暱稱、舊密碼以及新密碼,將信息與user表中的查詢信息對比,返回是否修改成功
- 打開myEclipse,和之前一樣,在已經創建的好的myServlet.data包中創建servlet文件——ChangePassword.java
- 在web.xml下配置
<servlet>
<servlet-name>ChangePassword</servlet-name>
<servlet-class>myServlet.data.ChangePassword</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChangePassword</servlet-name>
<url-pattern>/servlet/ChangePassword</url-pattern>
</servlet-mapping>
- 具體代碼如下
package myServlet.data;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.utils.JdbcUtils;
/**
* Servlet implementation class ChangePassword
*/
@WebServlet("/ChangePassword")
public class ChangePassword extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ChangePassword() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String oldPass = request.getParameter("oldPass");
String newPass = request.getParameter("newPass");
String userName = request.getParameter("username").trim();
if(oldPass == null||oldPass.length()==0) {
oldPass="";
}
if(newPass == null||newPass.length()==0) {
newPass="";
}
if(userName == null||userName.length()==0) {
userName = "";
}
Connection connection = null;
PreparedStatement prepareStatement = null;
PreparedStatement prepareStatement2 = null;
ResultSet rs = null;
ResultSet rs2 =null;
String backnews="";
boolean boo = false;
boo = oldPass.length()>0&&oldPass.length()>0&&userName.length()>0;
try {
connection = JdbcUtils.getConnection();
//3.獲取statement
String sql ="select * from user where username=?";
prepareStatement = connection.prepareStatement(sql);
prepareStatement.setString(1, userName);
if(boo) {
//4.執行sql
rs = prepareStatement.executeQuery();
boolean m = rs.next();
if(m==true) {
//查詢成功
String changeSql = "update user set password=? where username=? and password=?";
prepareStatement2 = connection.prepareStatement(changeSql);
prepareStatement2.setString(1, newPass);
prepareStatement2.setString(2, userName);
prepareStatement2.setString(3, oldPass);
prepareStatement2.execute();
backnews="修改成功";
}else {
backnews="沒有該用戶!";
}
}else {
backnews="密碼不能爲空!";
}
out.print(backnews.toString());
} catch (Exception e) {
backnews="修改失敗"+e.toString();
out.print(backnews);
e.printStackTrace();
}finally {
//5.釋放資源 connection prepareStatement
JdbcUtils.close(connection, prepareStatement, rs);
JdbcUtils.close(connection, prepareStatement2, rs2);
}
out.flush();
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
2.從info中查詢我的分享、我的日記、我的收藏
- 在myServlet.data包中新建servlet並命名爲QueryAboutMe
- 在web.xml中配置
<servlet>
<servlet-name>QueryAboutMe</servlet-name>
<servlet-class>myServlet.data.QueryAboutMe</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryAboutMe</servlet-name>
<url-pattern>/servlet/QueryAboutMe</url-pattern>
</servlet-mapping>
- 這部分通過type參數判斷是我的分享(0)、我的日記(1)、還是我的收藏(2),具體QueryAboutMe.java文件代碼如下
package myServlet.data;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.utils.JdbcUtils;
import org.utils.JsonUtils;
import com.sun.rowset.CachedRowSetImpl;
import net.sf.json.JSONArray;
/**
* Servlet implementation class QueryAboutMe
*/
@WebServlet("/QueryAboutMe")
public class QueryAboutMe extends HttpServlet {
private static final long serialVersionUID = 1L;
CachedRowSetImpl rowSet = null; //存儲表中全部記錄的行集對象
int pageSize; //每頁加載數量
int pageNum; //第幾頁
int totalRecord; //總記錄數
int totalPage; //總頁數
int shareType=0;
/**
* @see HttpServlet#HttpServlet()
*/
public QueryAboutMe() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String userName = request.getParameter("username");
String type = request.getParameter("type");
String page = request.getParameter("page");
String count = request.getParameter("count");
if(page == null||page == "") {
page = "1";
}
if(count == null|count == "") {
count = "10";
}
try {
pageNum = Integer.parseInt(page); //第幾頁
pageSize = Integer.parseInt(count); //每頁加載幾條
shareType = Integer.parseInt(type);
} catch (NumberFormatException e) {
e.printStackTrace();
}
String condition;
if(shareType==0) {
condition = "select * from info where (username='"+userName+"') and (info_type=0 or info_type=1 or info_type=2) order by info_id desc";
}else if(shareType ==1) {
condition = "select * from info where username='"+userName+"' and info_type=3 order by info_id desc";
}else {
condition = "select * from info left join focus on info.info_id=focus.info_id where focus.username='"+userName+"' order by focus.info_id desc";
}
Connection connection = null;
Statement sql = null;
ResultSet rs = null;
try {
connection = JdbcUtils.getConnection();
sql = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery(condition);
rowSet = new CachedRowSetImpl(); //創建行集對象
rowSet.populate(rs);
//按查詢頁數返回結果
returnByPage(request,response,rowSet);
} catch (Exception e) {
out.println(condition+"異常:"+e.toString());
e.printStackTrace();
}finally {
//5.釋放資源 connection prepareStatement
JdbcUtils.statementClose(connection, sql, rs);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
public void returnByPage(HttpServletRequest request, HttpServletResponse response,CachedRowSetImpl rowSet)throws ServletException, IOException{
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
JSONArray jsonArray = new JSONArray();//存放返回的jsonOjbect數組
JSONArray TotaljsonArray = new JSONArray();//存放返回的jsonOjbect數組
//將rowSet的數據提取到Map
List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();
//將rowSet的數據提取到Map
List<Map<String,Object>> Totaldata = new ArrayList<Map<String,Object>>();
try {
PrintWriter out = response.getWriter();
try {
rowSet.last(); //移到隨後一行
totalRecord = rowSet.getRow();
/*out.println("全部記錄數"+totalRecord); //全部的記錄數*/
if(totalRecord%pageSize==0){
totalPage = totalRecord/pageSize; //總頁數
}else{
totalPage = totalRecord/pageSize+1;
}
int index = (pageNum-1)*pageSize+1;
rowSet.absolute(index); //查詢位置移動到查詢頁的起始記錄位置
boolean boo = true;
for(int i=1; i<=pageSize&&boo;i++){
int infoId = rowSet.getInt(1); //內容ID
String infoTitle = rowSet.getString(2); //內容標題
String infoDescribe = rowSet.getString(3); //內容簡述
String infoDetail = rowSet.getString("info_detail"); //內容詳情
String type = rowSet.getString(5); //類型:0表示日記,1表示趣事
String support = rowSet.getString(6); //點贊數
String infoAuthor = rowSet.getString(7); //作者
Map<String,Object> map = new HashMap<String,Object>();
map.put("infoId", infoId);
map.put("infoTitle", infoTitle);
map.put("infoDescribe", infoDescribe);
map.put("infoDetail", infoDetail);
map.put("infoType", type);
map.put("infoSupport", support);
map.put("infoAuthor", infoAuthor);
data.add(map);
boo = rowSet.next();
}
jsonArray = JsonUtils.formatRsToJsonArray(data);
Map<String,Object> map = new HashMap<String,Object>();
map.put("totalRecord", totalRecord);
map.put("RecordDetail", jsonArray);
Totaldata.add(map);
TotaljsonArray = JsonUtils.formatRsToJsonArray(Totaldata);
out.println(TotaljsonArray.toString()); //返回json
}catch(Exception e) {
out.println("null");
}
}catch(IOException e) {
}
}
}
——到這的話,這個項目的後臺文件就全部編寫好了,其中包含的servlet文件可以從web.xml中看到,web.xml的代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Register</servlet-name>
<servlet-class>myServlet.data.Register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/servlet/Register</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>myServlet.data.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryDiscover</servlet-name>
<servlet-class>myServlet.data.QueryDiscover</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryDiscover</servlet-name>
<url-pattern>/servlet/QueryDiscover</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryHotInfo</servlet-name>
<servlet-class>myServlet.data.QueryHotInfo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryHotInfo</servlet-name>
<url-pattern>/servlet/QueryHotInfo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryInfoByKey</servlet-name>
<servlet-class>myServlet.data.QueryInfoByKey</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryInfoByKey</servlet-name>
<url-pattern>/servlet/QueryInfoByKey</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryPeopleInfoByKey</servlet-name>
<servlet-class>myServlet.data.QueryPeopleInfoByKey</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryPeopleInfoByKey</servlet-name>
<url-pattern>/servlet/QueryPeopleInfoByKey</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddInfo</servlet-name>
<servlet-class>myServlet.data.AddInfo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddInfo</servlet-name>
<url-pattern>/servlet/AddInfo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ChangeSignature</servlet-name>
<servlet-class>myServlet.data.ChangeSignature</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChangeSignature</servlet-name>
<url-pattern>/servlet/ChangeSignature</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryInfoById</servlet-name>
<servlet-class>myServlet.data.QueryInfoById</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryInfoById</servlet-name>
<url-pattern>/servlet/QueryInfoById</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>IfAddFocus</servlet-name>
<servlet-class>myServlet.data.IfAddFocus</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IfAddFocus</servlet-name>
<url-pattern>/servlet/IfAddFocus</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddSupport</servlet-name>
<servlet-class>myServlet.data.AddSupport</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddSupport</servlet-name>
<url-pattern>/servlet/AddSupport</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddFocus</servlet-name>
<servlet-class>myServlet.data.AddFocus</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddFocus</servlet-name>
<url-pattern>/servlet/AddFocus</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RemoveFocus</servlet-name>
<servlet-class>myServlet.data.RemoveFocus</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RemoveFocus</servlet-name>
<url-pattern>/servlet/RemoveFocus</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DeleteInfo</servlet-name>
<servlet-class>myServlet.data.DeleteInfo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DeleteInfo</servlet-name>
<url-pattern>/servlet/DeleteInfo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ChangePassword</servlet-name>
<servlet-class>myServlet.data.ChangePassword</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ChangePassword</servlet-name>
<url-pattern>/servlet/ChangePassword</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryAboutMe</servlet-name>
<servlet-class>myServlet.data.QueryAboutMe</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryAboutMe</servlet-name>
<url-pattern>/servlet/QueryAboutMe</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>QueryComment</servlet-name>
<servlet-class>myServlet.data.QueryComment</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryComment</servlet-name>
<url-pattern>/servlet/QueryComment</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddComment</servlet-name>
<servlet-class>myServlet.data.AddComment</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddComment</servlet-name>
<url-pattern>/servlet/AddComment</url-pattern>
</servlet-mapping>
</web-app>