介面間的引數傳遞
阿新 • • 發佈:2020-10-27
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 %>"