JSPservlet跳轉頁面404錯誤
阿新 • • 發佈:2019-02-13
package done;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.jms.ServerSession;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import bean.NRC_NEWS;
import bean.NRC_TYPE;
import bean.NRC_USER;
import dal.News_Dal;
import dal.News_type_Dao;
public class NrsServlet extends HttpServlet {
//新聞管理物件
News_Dal newsDal = new News_Dal();
static ArrayList<NRC_TYPE> list=new ArrayList<NRC_TYPE>();
static News_type_Dao type=new News_type_Dao();
static NRC_TYPE typebean=null;
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//設定reuqest和response的編碼格式
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//獲取前臺傳來的method引數,呼叫相應方法
String method = request.getParameter("method");
System.out.println("---方法名----"+method);
if(method.equals("addnews")){
System.out.println("----新增新聞----");
addNews(request,response);
}else if(method.equals("deleteNews")){
System.out.println("----刪除新聞----");
deleteNews(request,response);
}else if(method.equals("updateNews")){
queryNews(request,response);
}else if(method.equals("rupdateNews")){
updateNews(request,response);
}else if(method.equals("login")){
login(request,response);
}else if(method.equals("updatePwd")){
updatePw(request,response);
/******------------類別管理-----------------****/
} else if(method.equals("delete")){
String type_ID=request.getParameter("ID");
int id=-1;
if(type_ID!=null){
id=Integer.parseInt(type_ID);
}
System.out.println("類別刪除接收到的方法名稱\t"+method+"傳遞過來 的ID\t"+type_ID);
type.deleteID(id);
// request.getRequestDispatcher("Menu/type_listall.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_listall.jsp");
}else if(method.equals("detail")){
String type_ID=request.getParameter("ID");
System.out.println("類別詳情接收到的方法名稱\t"+method+"傳遞過來 的ID\t"+type_ID);
int id=-1;
if(type_ID!=null){
id=Integer.parseInt(type_ID);
}
typebean=new NRC_TYPE();
typebean=type.query(id);
//request.setAttribute("typebean", typebean);
request.getSession().setAttribute("typebean", typebean);
//request.getRequestDispatcher("Menu/type_detail.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_detail.jsp");
}else if(method.equals("update")){
String type_ID=request.getParameter("ID");
int id=-1;
if(type_ID!=null){
id=Integer.parseInt(type_ID);
}
System.out.println("類別修改接收到的方法名稱\t"+method+"傳遞過來 的ID\t"+type_ID);
typebean=new NRC_TYPE();
typebean=type.query(id);
//request.setAttribute("typebean", typebean);
request.getSession().setAttribute("typebean", typebean);
//request.getRequestDispatcher("Menu/type_update.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_update.jsp");
}else if(method.equals("add")){
//request.getRequestDispatcher("Menu/type_add.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_add.jsp");
}else if(method.equals("updatemessage")){
String unid=request.getParameter("unid");
int urid=Integer.parseInt(unid);
String uname=request.getParameter("uname");
String umessage=request.getParameter("umessage");
System.out.println(urid+"類別名稱\t"+uname+"類別備註\t"+umessage);
if(!(uname.equals(""))&&(umessage!=null)){
type.update(urid, uname, umessage);
//request.getRequestDispatcher("Menu/type_listall.jsp").forward(request, response);
//request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_listall.jsp");
}
}else if(method.equals("addresult")){
String name=request.getParameter("addname");
String message=request.getParameter("addmessage");
if(!(name.equals(""))&&(message!=null)){
if(type.queryNAME(name)==false){
type.add(name, message);
// request.getRequestDispatcher("Menu/type_listall.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_listall.jsp");
}else{
//request.getRequestDispatcher("Menu/type_adderror.jsp").forward(request, response);
request.getSession().setAttribute("request", request);
response.sendRedirect("Menu/type_adderror.jsp");
}
System.out.println("類別新增結果接收到的方法名稱\t"+method);
}
else{
System.out.println("新增資料為空");
}
}
}
//使用者登入驗證
private void login(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//獲取登入資訊
String username = request.getParameter("username");
String password = request.getParameter("password");
//驗證
News_Dal userdao = new News_Dal();
NRC_USER user = userdao.userlogin(username, password);
//登入成功
if(user!=null){
request.getSession().setAttribute("loginuser", user);
response.sendRedirect("indexx.html");
}else{
response.sendRedirect("Menu/Fail.jsp");
}
}
//使用者密碼修改
public void updatePw(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
NRC_USER getUser = (NRC_USER)request.getSession().getAttribute("loginuser");
int userid = getUser.getU_ID();
System.out.println("獲得的id為:"+userid);
String newPwd = request.getParameter("password");
String verifyPwd = request.getParameter("verifyPassword");
if(newPwd.equals(verifyPwd)){
int result = newsDal.updateUserPwd(newPwd, userid);
if(result!=0){
response.sendRedirect("Menu/news-list.jsp");
}else{
request.getRequestDispatcher("Menu/Fail.jsp").forward(request, response);
}
}
}
//新增新聞邏輯處理層
private void addNews(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//例項化新聞物件
NRC_NEWS news = new NRC_NEWS();
//設定標誌量
int flag = 0;
System.out.println("當前所在位置:增加新聞");
//獲取前臺引數
int T_ID = Integer.parseInt(request.getParameter("typeSelect"));
String NEWS_TITLE = request.getParameter("newsTitle");
String NEWS_CONTENT = request.getParameter("newsContent");
//自動設定增加時間
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String time = formatter.format(date);
System.out.println("當前時間獲取成功"+time);
//設定物件各參量的值
news.setN_TITLE(NEWS_TITLE);
news.setN_CONTENT(NEWS_CONTENT);
news.setT_ID(T_ID);
news.setN_PUBLISHTIME(time);
flag = newsDal.addNews(news);
//判斷是否新增成功
if(flag!=0){
request.setAttribute("flag", "true");
response.sendRedirect("Menu/news-list.jsp");
}else{
request.getRequestDispatcher("Menu/Fail.jsp").forward(request, response);
}
}
//刪除某條新聞邏輯處理
private void deleteNews(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//獲取要刪除的新聞ID
int id = Integer.parseInt(request.getParameter("ID"));
int flag = newsDal.delNews(id);
PrintWriter out = response.getWriter();
System.out.println("獲取的要刪除的新聞ID為:"+id);
if(flag!=0){
request.setAttribute("flag", "true");
response.sendRedirect("Menu/news-list.jsp");
}else{
request.getRequestDispatcher("Menu/Fail.jsp").forward(request, response);
}
}
//查詢新聞邏輯層
private void queryNews(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//獲取要修改的新聞ID
int id = Integer.parseInt(request.getParameter("ID"));
System.out.println("新聞ID"+id);
//查詢到新聞資訊並在輸入框賦值
NRC_NEWS news = newsDal.queryNews(id);
//傳參並跳轉
request.getSession().setAttribute("newsInfo", news);
//request.getRequestDispatcher("Menu/update-newss.jsp").forward(request, response);
response.sendRedirect("Menu/update-news.jsp");
}
//修改新聞邏輯層
private void updateNews(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
NRC_NEWS news = new NRC_NEWS();
//設定標誌量
int flag = 0;
System.out.println("當前所在位置:修改新聞");
//獲取前臺引數
int T_ID = Integer.parseInt(request.getParameter("typeSelect"));
int N_ID = Integer.parseInt(request.getParameter("N_ID"));
String NEWS_TITLE = request.getParameter("newsTitle");
String NEWS_CONTENT = request.getParameter("newsContent");
//自動設定增加時間
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String time = formatter.format(date);
System.out.println("當前時間獲取成功"+time);
//設定物件各參量的值
news.setN_TITLE(NEWS_TITLE);
news.setN_CONTENT(NEWS_CONTENT);
news.setT_ID(T_ID);
news.setN_PUBLISHTIME(time);
news.setN_ID(N_ID);
flag = newsDal.updateNews(news);
//判斷是否修改成功
if(flag!=0){
request.getSession().setAttribute("flag", "true");
response.sendRedirect("Menu/news-list.jsp");
//request.getRequestDispatcher("Menu/news-list.jsp").forward(request, response);
}else{
request.getRequestDispatcher("Menu/Fail.jsp").forward(request, response);
}
}
}
在frameset框架綜合servlet跳轉頁面
request.getRequestDispatcher(“Menu/type_listall.jsp”).forward(request, response);是沒有作用的
而是用 這種格式:
request.getSession().setAttribute(“request”, request);
response.sendRedirect(“Menu/type_listall.jsp”);
這樣才可以條主那