1. 程式人生 > 實用技巧 >介面間的引數傳遞

介面間的引數傳遞

servlet和jsp頁面間的引數傳遞

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="java.sql.*" %>  <%--匯入java.sql包--%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"
://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>需求瀏覽</title> <script type="text/javascript" src="layui/layui.js"></script> <link rel="stylesheet" href="layui/css/layui.css
"> </head> <body style="margin-top:15px;margin-left: 10px;"> <div style="text-align: center;"> <h1>需求瀏覽</h1> <table class="layui-table" > <thead> <tr> <th>需求名稱</th> <th>機構名稱</th> <th>所在地域</th> <th>歸口管理單位</th> <th>機構屬性</th> <th>科技活動型別</th> <th>形式稽核狀態</th> <th>部門稽核狀態</th> <th>操作</th> </tr> </thead> <tbody> <% try
{ Class.forName("com.mysql.jdbc.Driver"); //驅動程式名 String db_url = "jdbc:mysql://localhost:3306/sys?&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; String db_user = "root"; String db_pass = "123456"; Connection conn = DriverManager.getConnection(db_url, db_user, db_pass); if(conn != null){ //out.print("資料庫連線成功!"); //out.print("<br />"); Statement stmt = null; ResultSet rs = null; String sql = "select * from Biao where oname=?;"; //查詢語句 PreparedStatement prpe=(PreparedStatement) conn.prepareStatement(sql); prpe.setString(1,request.getParameter("workplace")); System.out.println(request.getParameter("workplace")); System.out.println(request.getParameter("tell")); rs = prpe.executeQuery(); String stus=null;//部門稽核 String stus2=null;//形式稽核 //out.print("查詢結果:"); //out.print("<br/>"); while (rs.next()){ if(rs.getString("shen").equals("同意")||rs.getString("shen").equals("不同意")){ stus="已稽核"; }else{ stus="未稽核"; } if(rs.getString("shen2").equals("同意")||rs.getString("shen2").equals("不同意")){ stus2="已稽核"; }else{ stus2="未稽核"; } if(rs.getString("shen").equals("未稽核")||stus.equals("已稽核")){ %> <tr data-id="1"> <td><%=rs.getString("demandname") %></td> <td><%=rs.getString("oname") %></td> <td><%=rs.getString("saddress") %></td> <td><%=rs.getString("sub") %></td> <td><%=rs.getString("attribute") %></td> <td><%=rs.getString("type") %></td> <td class="td-status" > <span class="layui-btn layui-btn-normal layui-btn-xs"><%=stus2 %></span> </td> <td class="td-status" > <span class="layui-btn layui-btn-normal layui-btn-xs"><%=stus %></span> </td> <td class="td-manage"> <a title="檢視" href="${pageContext.request.contextPath}/BrowserServlet?method=search&way=look&id=<%=rs.getInt("id") %>&oname=<%=request.getParameter("workplace") %>"> <i class="layui-icon layui-icon-edit"></i> </a> <a title="修改" href="${pageContext.request.contextPath}/BrowserServlet?method=search&way=modify&id=<%=rs.getInt("id") %>&oname=<%=request.getParameter("workplace") %>&bu=<%=stus %>&xing=<%=stus2 %>"> <i class="layui-icon layui-icon-util"></i> </a> <a title="刪除" onclick="member_del(this,'要刪除的id')" href="javascript:;"> <i class="layui-icon layui-icon-delete"></i> </a> </td> </tr> <% } } }else{ out.print("連線失敗!"); } }catch (Exception e) { //e.printStackTrace(); out.print("資料庫連線異常!"); } %> </tbody> </table> </body> <script type="text/javascript"> //修改提示彈窗 var te='<%=request.getParameter("tell") %>'; if(te=="no") { alert("正在稽核中不可修改!"); } </script> </html>

severlt程式碼

package com.servlet;

import java.io.IOException;
import java.sql.SQLException;

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 java.util.ArrayList;
import java.util.List;

import com.bean.AdminBean;
import com.bean.AdminnewBean;
import com.bean.BiaoBean;


import com.dao.BiaoDao;

import com.mysql.fabric.xmlrpc.base.Array;
/**
 * Servlet implementation class AdminServlet
 */
@WebServlet("/BrowserServlet")
public class BrowserServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BrowserServlet() {
        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.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @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);
    }
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method=req.getParameter("method");
        String oname=req.getParameter("oname");
        System.out.print(method);
        
        if(method.equals("all"))
        {
            try {
                all(req,resp);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                String msg = "登入錯誤";

                req.setAttribute("msg",msg);

                req.getRequestDispatcher("/error.jsp").forward(req,resp);
            }
        }
        else if(method.equals("search")) {
            try {
                search(req,resp);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                String msg = "登入錯誤";

                req.setAttribute("msg",msg);

                req.getRequestDispatcher("/error.jsp").forward(req,resp);
            }
        }
        
    }
    protected void all(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, SQLException {
        req.setCharacterEncoding("utf-8");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        //System.out.println(username);
        //System.out.println(password);
        List<BiaoBean> biao=new ArrayList<BiaoBean>();
        BiaoDao biaodao=new BiaoDao();
        biao=biaodao.all();
        req.setAttribute("biao",biao);
        req.getRequestDispatcher("/browser.jsp").forward(req,resp);
    }
    protected void search(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, SQLException {
        //稽核介面(edit.jsp)、修改介面(editmodify.jsp)、檢視介面(editlook.js)需要預顯示的資料
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        String id=req.getParameter("id");//通過id唯一標識需求表
        String way=req.getParameter("way");
        
        String username=req.getParameter("username");
        String oname=req.getParameter("oname");
        String bu=req.getParameter("bu");
        String xing=req.getParameter("xing");
        System.out.println(username);
        System.out.println(bu);
        System.out.println(xing);
        System.out.println(way);
        
        System.out.println(oname);
        BiaoBean biao=new BiaoBean();
        BiaoDao biaodao=new BiaoDao();
        biao=biaodao.search(id);
        req.setAttribute("biao", biao);
        if(way.equals("shen")) {
            req.setAttribute("use","bu");
            req.setAttribute("username",username);
            req.getRequestDispatcher("/edit.jsp?").forward(req,resp);//部門稽核介面
        }
        else if(way.equals("shen2"))
        {
            req.setAttribute("use","xing");
            req.getRequestDispatcher("/edit.jsp").forward(req,resp);//形式稽核介面
        }
        else if(way.equals("look"))
        {
            req.setAttribute("oname",oname);
            req.getRequestDispatcher("/editlook.jsp").forward(req,resp);//註冊使用者檢視需求表
        }
        else if(way.equals("modify"))
        {
            if(xing.equals("已稽核")) {//如果形式稽核員已稽核則不可修改
            
                req.getRequestDispatcher("/tablesettle.jsp?tell=no&workplace="+oname).forward(req,resp);
            }
            else {
                req.setAttribute("oname",oname);
                req.getRequestDispatcher("/editmodify.jsp").forward(req,resp);//註冊使用者修改需求表
            }
        }
    }
}

jsp中可通過herf跳轉時並攜帶引數到servlet

href="${pageContext.request.contextPath}/BrowserServlet?method=search&way=modify&id=<%=rs.getInt("id") %>&oname=<%=request.getParameter("workplace") %>&bu=<%=stus %>&xing=<%=stus2 %>"