从jsp获取java数据通过request传到jsp后,再通过jsp传到jsp获取java数据后,数据变了

403 Forbidden
Request forbidden by administrative rules.java 跳转 动态更新页面数据
作者:用户
浏览:788 次
java跳转动态更新页面数据主页面include一个jsp的增删改页面,数据变动,怎么更新主页面的数据,request.getRequestDispatcher().forward(),地址栏不变,而
java 跳转 动态更新页面数据
主页面include一个jsp的增删改页面,数据变动,怎么更新主页面的数据,request.getRequestDispatcher().forward(),地址栏不变,而且主页面数据也不变,
response.sendRedirect重定向到主页面地址栏变,数据更新,不是include的list页面,
该怎么做?
一般你的页面按钮,例如增加按钮,在后台处理完成后,后台页面跳转到这个查询页面来啊。即所有增、删除、改操作完成后的后台action的跳转页面都指向查询页面的jsp就可以了吧。
解决方案二:
&%@ page language="java" import="java.util.*, java..*"
import="java.text.*" pageEncoding="utf-8"%&
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
margin: 0;
padding: 0;
background: url(0.jpg) no-
background-position:
margin-top: 30
height: 500
height: 30
background-color: #D18B00;
width: 500
margin-top: 130
margin-left: 200
background-position:
//到数据库中判断读取出的cookie中的用户名密码是否正确
//创建路、人、桶三个对象
Connection conn =
Statement stmt =
ResultSet rs =
//1.加载驱动
Class.forName("com..jdbc.Driver");
//2.创建连接字符串
String url = "jdbc:mysql://localhost:3306/information";
//3.创建路
conn = DriverManager.getConnection(url, "root", "");
//4.创建人
stmt = conn.createStatement();
//增删改查
//数据库添加、更新、删除数据
//String str1="insert into book values(987,'chen',32.00)";
//String str2="update book set price=50.00 where id=123";
//删除的行数= ID
out.print("已经修改的行数为:");
out.print(request.getParameter("ID"));
a = request.getParameter("ID");
String b = request.getParameter("useName");
String c = request.getParameter("password");
out.println("用户名和密码是:"+b);
out.println("用户名和密码是:"+c);
String str="update user set useName='"+b+"', password='"+c+"' where ID='"+a+"'";
//i代表的是受影响行数
int i = stmt.executeUpdate(str);
out.print("受影响行数"+i);
response.sendRedirect("Update.jsp");
else if(i==0){
response.sendRedirect("Index.jsp");
} catch (Exception ex) {
out.println(ex.toString());
解决方案三:
可以用主页面和引入用的都持有的全局变量来做通知,也可以在引入页面持有主页面的函数来直接通知,直接通知的话引入页面和主页面就不解耦了。
具体如何做需要看你自己。实现方式有很多,需要你根据自己的业务选择适用的实现方式。
解决方案四:
【云栖快讯】直播推荐——现在报名3月12日编程语言系列讲座,与行业资深专家一起学习Python、C++、JavaScript、Java!还可在活动页面领取红包,百分百中奖哦!&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
IT采购开年惠,百款产品5折起,新购满额再返最高6000!当前位置:
javaweb+jsp+session
实现购物车修改商品数量的问题
javaweb+jsp+session
实现购物车修改商品数量的问题
来源:网络整理&&&&&时间: 21:03:32&&&&&关键词:Session,java
关于网友提出的“javaweb+jsp+session
实现购物车修改商品数量的问题”问题疑问,本网通过在网上对“javaweb+jsp+session
实现购物车修改商品数量的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:javaweb+jsp+session
实现购物车修改商品数量的问题
描述:如何把用户输入的数量值,传递到购物车数量中去??解决方案1:用Js方法 firstChild.nodeValue 获取 输入框中的值
然后 还是js
table.rows[i].cells[i].innerHTM L赋值给商品数量那一栏
。。。不懂的就百度哈解决方案2:可以把 传入的值用js取出来,再把js取出的值在该显示的地方调用就行
以上介绍了“javaweb+jsp+session
实现购物车修改商品数量的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/wd/1225976.html
上一篇: 下一篇:java中如何在前台jsp页面封装一个map并传到后台啊_百度知道
该问题可能描述不清,建议你
java中如何在前台jsp页面封装一个map并传到后台啊
我有更好的答案
那就更后台代码一样如果你是在jsp页面嵌入java代码。但是可以用json把参数通过键值对的方式传到后台,实际跟map的思想都是一样的,用request.setAttribute等方法就可以了。如果不想在页面嵌入java代码,用js这些是直接办不到的。你可以查一下json的使用方法
采纳率:17%
来自团队:
前台jsp传到后台的东西都是字节流或者字符流,因此如果你想传一个map,那么你后台其实还是解析字符串到map.就是说你可以前台自己定格式,后台对此格式解析成你所需要的
你最好是放到二维数组中,这样就可以直接传到后台就能行处理,要是非得封装成map的话你只有在jsp中嵌套java语言了,然后再传递到后台。建议用二维数组,用js就可以解决问题,望采纳
本回答被提问者和网友采纳
前台组合成 JSON
这么简单的问题怎么回答的这么雷人?将你封装好的map扔到session或者request中,后台直接访问不就行了吗?
3条折叠回答
为您推荐:
其他类似问题
jsp的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。servlet、jsp跳转(传值)总结及URL传参数
我的图书馆
servlet、jsp跳转(传值)总结及URL传参数
Servlet传值总结1) redirect方式[效率不高]& request和response没有传给目标页面& response.sendRedirect("/a.jsp");& 页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:& response.sendRedirect("URL");跳转后浏览器地址栏变化。& 这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。& 传值:HttpSession session =request.getSession();&&&&&&&&&&&&& session.setAttribute("bbbb", );& 取值:session.getAttribute("bbbb");& 传值:RequestDispatcher rd =application.getRequestDispatcher("/queryResult.jsp?a="+000);& 取值:request.getParameter("a") 2) forward方式[更多地使用此方法进行服务器端的跳转]& Context application =this.getServletContext();&&& //this是这个页面& RequestDispatcher rd = application.getRequestDispatcher("/目标页面");& rd.forward(request, response);& Servlet页面跳转的路径是相对路径。forward方式只能跳转到本web应用中的页面上,跳转后浏览器地址栏不会变化。& 使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute& 传值:request.setAttribute("a", 00);& 取值:request.getAttribute("a");& 传值:HttpSession session =request.getSession();&&&&&&&&&&&&& session.setAttribute("bbbb", );& 取值:session.getAttribute("bbbb");& 传值:RequestDispatcher rd =application.getRequestDispatcher("/queryResult.jsp?a="+000);& 取值:request.getParameter("a");& getParameter()只能传递字符串,而setAttribute()/getAttribute()还可以传递对象& 其次getParameter方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。&&& 只能是页面发送到后台或者Web客户端传到Web服务器端=======================================================================servlet 和 jsp 跳转页面的几种方法
跳转分两部分:
一是发生在servlet,一是在JSP,其实JSP也就是servlet,不过还是有点差异滴。当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面。
(1)redirect 方式response.sendRedirect("/a.jsp");页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不局限于本web应用中,如:response.sendRedirect(http://www.ycul.com);跳转后浏览器地址栏变化。这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。
& (2) forward方式request.getRequestDispatcher("/a.jsp").forward(request, response);或getServletContext().getRequestDispatcher("/a.jsp").forward(request, response);页面的路径是相对路径。forward方式只能跳转到本web应用中的页面上。跳转后浏览器地址栏不会变化。使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute
1)response.sendRedirect();和servlet的response.sendRedirect()方式一样。此语句前不允许有out.flush(),如果有,会有异常:java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)....跳转后浏览器地址栏变化如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转
2)response.setHeader("Location","");此语句前不允许有out.flush(),如果有,页面不会跳转。跳转后浏览器地址栏变化此语句后面的语句执行完成后才会跳转.
3)&jsp:forward page="" /&此语句前不允许有out.flush(),如果有,会有异常:java.lang.IllegalStateException: forward() not allowed after buffer has committed.at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)跳转后浏览器地址栏不变,但是只能跳到当前主机下此语句后面的语句执行完成后才会跳转==============================================================例题:login.jsp----&LoginServlet.java-----&UserDAO.java-----&success.jsp
&请看下面项目部署结构:
&web.xml:&?xml version="1.0" encoding="UTF-8"?&&web-app version="2.5" &&& xmlns="http://java.sun.com/xml/ns/javaee" &&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &&& xsi:schemaLocation="http://java.sun.com/xml/ns/javaee &&& http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&&&& &&& &servlet&&&& &&& &servlet-name&loginservlet&/servlet-name&&&& &&& &servlet-class&com.laolu.servlet.LoginServlet&/servlet-class&&&& &/servlet&&&& &&& &servlet-mapping&&&& &&& &servlet-name&loginservlet&/servlet-name&&&& &&& &url-pattern&/loginservlet&/url-pattern&&&& &/servlet-mapping&&&& & &welcome-file-list&&&& &welcome-file&index.jsp&/welcome-file&& &/welcome-file-list&&/web-app&login.jsp:&%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&&%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html&& &head&&&& &base href="&%=basePath%&"&&&& &title&login.jsp&/title&&&& &meta http-equiv="pragma" content="no-cache"&&&& &meta http-equiv="cache-control" content="no-cache"&&&& &meta http-equiv="expires" content="0"&&&& &&& &meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&&&& &meta http-equiv="description" content="This is my page"&&&& &!--&&& &link rel="stylesheet" type="text/css" href="styles.css"&&&& --&& &/head&& &body&&&& &form action="loginservlet" method="post"&&&& &&& &用户名:&input type="text" name="uname" /&&br/&&&& &&& &密码:&input type="password" name="ps" /&&br/&&&& &&& 文本域:&textarea rows="10" cols="30" name="text"&&/textarea&&br/&&&& &&& &input type="submit" value="提交"&&&& &/form&& &/body&&/html&LoginServlet.java:package com.laolu.import java.io.UnsupportedEncodingEimport javax.servlet.http.HttpSimport javax.servlet.http.HttpServletRimport javax.servlet.http.HttpServletRimport com.laolu.dao.UserDAO;public class LoginServlet extends HttpServlet{&&& public void doGet (HttpServletRequest request,HttpServletResponse response){&&& &&& String name = request.getParameter("uname");&&&&&&& byte[]&&& &&& try {&&& &&& &&& b = name.getBytes("iso8859-1");&&& &&& &&& String username = new String(b,"UTF-8");&&& &&&&&&& &&& &&&&&&& String password = request.getParameter("ps");&&& &&&&&&& &&& &&&&&&& String text = request.getParameter("text");&&& &&&&&&& &&& &&&&&&& //设置session范围属性&&& &&&&&&& request.getSession().setAttribute("china", "李静");&&& &&&&&&& &&& &&&&&&& //设置request范围属性&&& &&&&&&& request.setAttribute("n", "肖人");&&& &&&&&&& &&& &&&&&&& UserDAO user = new UserDAO();&&& &&&&&&& &&& &&&&&&& boolean flag = user.findUser(username,password);&&& &&&&&&& if(flag){&&& &&&&&&& &&& //将需要转发或发送的地址进行转码操作。这样在目标页面更好取值,以免乱码产生&&& &&&&&&& &&& String url = "forward/success.jsp?first=传递第一个参数&second=传递第二个参数";&&& &&&&&&& &&& url = new String(url.getBytes("UTF-8"),"ISO8859-1");&&& &&&&&&& &&& &&& &&&&&&& &&& //客户端跳转。只有session范围的属性及url中参数会被传递下去&&& &&&&&&& &&& //response.sendRedirect(url);&&& &&&&&&& &&& &&& &&&&&&& &&& //服务器端跳转。request对象、url中的参数会被传递下去&&& &&&&&&& &&& request.getRequestDispatcher(url).forward(request, response);&&& &&&&&&& &&& &&& &&&&&&& }else{&&& &&&&&&& &&& response.sendRedirect("forward/error.jsp");&&& &&&&&&& }&&& &&& } catch (UnsupportedEncodingException e) {&&& &&& &&& e.printStackTrace();&&& &&& } catch (Exception e) {&&& &&& &&& e.printStackTrace();&&& &&& &&& }&&&&&&& &&& }&&& &&& public void doPost(HttpServletRequest request,HttpServletResponse response){&&& &&& doGet(request, response);&&& }}success.jsp:&%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&&%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html&& &head&&&& &base href="&%=basePath%&"&& & &title&My JSP 'login.jsp' starting page&/title&&&& &meta http-equiv="pragma" content="no-cache"&&&& &meta http-equiv="cache-control" content="no-cache"&&&& &meta http-equiv="expires" content="0"&&&& &&& &meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&&&& &meta http-equiv="description" content="This is my page"&&&& &!--&&& &link rel="stylesheet" type="text/css" href="styles.css"&&&& --&& &/head&& & &body&&&& &&& servlet登录成功。&br/&&br/&&&& &&& &!-- 取得在servlet中设置的session范围属性值 --&&&& &&& &&%= "session中取得的属性值"+ session.getAttribute("china") %&&br/&&&& &&& &&!-- 取得通过url传递的参数的值。并进行解码。否则会乱码 --&&&& &&& &&%="url中第一个参数:"+ new String(request.getParameter("first").getBytes("ISO8859-1"),"UTF-8") %&&&& &&& &&& &br/&&& &&& &&&& &&%="url中第二个参数:"+ new String(request.getParameter("second").getBytes("ISO8859-1"),"UTF-8") %&&&&& &&& &br/&&&& &&& &!-- 取得在servlet中设置的request的属性值。并进行解码。否则会乱码 --&&&& &&& &%="request中取得的属性值:"+ request.getAttribute("n") %&&&& &&& &br/&&&& &&& &!-- 取得表单提交过来的数据。同样需要进行解码--&&&& &&& &%=new String(request.getParameter("text").getBytes("ISO8859-1"),"UTF-8") %&& &/body&&/html&error.jsp:&%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&&%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html&& &head&&&& &base href="&%=basePath%&"&&&& &&& &title&My JSP 'login.jsp' starting page&/title&&&& &&& &meta http-equiv="pragma" content="no-cache"&&&& &meta http-equiv="cache-control" content="no-cache"&&&& &meta http-equiv="expires" content="0"&&&& &&& &meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&&&& &meta http-equiv="description" content="This is my page"&&&& &!--&&& &link rel="stylesheet" type="text/css" href="styles.css"&&&& --&& &/head&& &body&&& &&& servlet输入错误,&a href="forward/login.jsp"&请重新登录&/a&& &/body&&/html&UserDAO:package com.laolu.import java.sql.Cimport java.sql.DriverMimport java.sql.ResultSimport java.sql.SQLEimport java.sql.Spublic class UserDAO {&&& Connection& conn =&&& //去连接数据库,查询userInfo表中的数据&&& //1.连接数据库&&& public Connection getCon(){&&& &&& //1.加载数据库驱动程序:微软公司开发的数据库驱动程序jar包,添加到WEB-INF/lib目录下&&& &&& String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";&&& &&& String url = "jdbc:sqlserver://localhost:1433;DataBaseName=abc";&&& &&& &&& &&& try {&&& &&& &&& Class.forName(driver);&&& &&& &&& try {&&& &&& &&& &&& conn = DriverManager.getConnection(url,"sa","sasa");&&& &&& &&& &&& System.out.println("数据库连接成功!");&&& &&& &&& &&& System.out.println(conn);&&& &&& &&& } catch (SQLException e) {&&& &&& &&& &&& e.printStackTrace();&&& &&& &&& }&&& &&& } catch (ClassNotFoundException e) {&&& &&& &&& e.printStackTrace();&&& &&& }&&& &&& //取得数据库连接对象&&& &&& &&& &&&&&& }&&& &&& /**&&& &* @通过用户名和密码查找用户&&& &* @param name&&& &* @param ps&&& &*/&&& public boolean findUser(String name,String ps){&&& &&& boolean flag =&&& &&& conn = this.getCon();&&& &&& //st对象用于执行sql语句&&& &&& S&&& &&& try {&&& &&& &&& st = conn.createStatement();&&& &&& &&& ResultSet rs = st.executeQuery("select * from userinfo where uname='"+name+"' and ps='"+ps+"'");&&& &&& &&& while (rs.next()) {&&& &&& &&& &&& String uname = rs.getString("uname");&&& &&& &&& &&& String password = rs.getString("ps");&&& &&& &&& &&& //System.out.println(uname);&&& &&& &&& &&& return flag=&&& &&& &&& }&&& &&& &&& rs.close();&&& &&& &&& st.close();&&& &&& &&& conn.close();&&& &&& } catch (SQLException e) {&&& &&& &&& // TODO Auto-generated catch block&&& &&& &&& e.printStackTrace();&&& &&& }&&& &&&&&& }}生成数据库表的脚本:a.sqlUSE [abc]GO/****** 对象:& Table [dbo].[userinfo]&&& 脚本日期: 03/19/:31 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[userinfo](&&& [uname] [varchar](50) NOT NULL,&&& [ps] [varchar](50) NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGO
TA的最新馆藏
喜欢该文的人也喜欢

我要回帖

更多关于 java变量传到jsp页面 的文章

 

随机推荐