Java中的前后台交互

jsp向servlet中传值

form表单传值

<form name="myForm" method="post" action="actionname">
<input name="username"type="text" /> 
<input name="password"type="password" />
</form>
//action里面也可以传参数,在method=get下,form表单只接收表单元素”name“属性和相应的”value“。
//想要通过在action中自己写?的形式传值,method的值必须是=post
如:action="actionname?pass=11"

在点击提交按钮的时候,数据就会提交到后台,让actionname这个action去处理:

request.getParameter("username") 

URL传值

<a href="/myServlet?param1=aa&m2=bb" ,在后台你直接用request.getParameter("param1")得到aa的值

java代码传值

java片段代码,servlet只能接到 session.setAttribute("testSession","Hello session")的内容,而接不到 request的内容。
在 servlet里用 request.getSession().getAttribute("testSession")获取 session内容。

Servlet传值给Jsp

url方式

  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
//将需要转发或发送的地址进行转码操作。这样在目标页面更好取值,以免乱码产生
//设置session范围属性
request.getSession().setAttribute("china", "李静");
//设置request范围属性
request.setAttribute("n", "肖人");
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);

success.jsp:
<!-- 取得在servlet中设置的session范围属性值 -->
<%= "session中取得的属性值"+ session.getAttribute("china") %><br/>
<%= "request中取得的属性值"+ request.getAttribute("n") %><br/>
<!-- 取得通过url传递的参数的值。并进行解码。否则会乱码 -->
<%="url中第一个参数:"+ new String(request.getParameter("first").getBytes("ISO8859-1"),"UTF-8") %><br/>

//jsp页面:通常使用EL表达式接收
如:如${num},${sessionScope.userphone}等形式
 response.setContentType("text/html; charset=gb2312"); //设置网页的字符编码格式为gb2312
          request.setAttribute("msg", "123345");  //类似<key,value>,用于请求的参数传递,一般是action到jsp界面
request.getRequestDispatcher("msg.jsp").forward(request,response);
//当你要跳转页面但是你又要用到前一个页面的某些信息的时候可以用这个方法
response.sendRedirect("new.jsp");   //重定向到new.jsp
//当你要跳转页面并且不需要用到前一个页面的信息时你可以选择用redirect(重定向)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值