天天看點

JSPservlet跳轉頁面404錯誤

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”);