大二下学期学习进度(十一)
编码行数:600行
编码时长:20h
发表博客篇数:4篇
所学知识点:
1.Session的具体用法:
前端提交表单
<form action="b.jsp" method="post" onsubmit="return check()">
<p>session1:<input type="text" name="name1" id="name1"></p>
<p>session2:<input type="text" name="name2" id="name2"></p>
<p>session3:<input type="text" name="name3" id="name3"></p>
<p><input type="submit" name="submit" id="submit" value="提交"></p>
<p>session1:<input type="text" name="name1" id="name1"></p>
<p>session2:<input type="text" name="name2" id="name2"></p>
<p>session3:<input type="text" name="name3" id="name3"></p>
<p><input type="submit" name="submit" id="submit" value="提交"></p>
</form>
后台jsp页面获取input框中值,将其存进sessio中,并将其传给下一个jsp页面显示。这里用的十<a href 超链接跳转界面
<a href="<%
request.setCharacterEncoding("UTF-8");
String name1 = request.getParameter("name1");
String name2 = request.getParameter("name2");
String name3 = request.getParameter("name3");
session.setAttribute("name1",name1);
session.setAttribute("name2",name2);
session.setAttribute("name3",name3);
request.getRequestDispatcher("c.jsp").forward(request,response);
request.setCharacterEncoding("UTF-8");
String name1 = request.getParameter("name1");
String name2 = request.getParameter("name2");
String name3 = request.getParameter("name3");
session.setAttribute("name1",name1);
session.setAttribute("name2",name2);
session.setAttribute("name3",name3);
request.getRequestDispatcher("c.jsp").forward(request,response);
%>"></a>
同样获取session的值并且显示在界面
<%request.setCharacterEncoding("UTF-8");
String name1 = (String)session.getAttribute("name1");
String name2 = (String)session.getAttribute("name2");
String name3 = (String)session.getAttribute("name3");%>
<p>Session1的值为:<%=name1 %></p>
<p>Session2的值为:<%=name2 %></p>
<p>Session3的值为:<%=name3 %></p>
String name1 = (String)session.getAttribute("name1");
String name2 = (String)session.getAttribute("name2");
String name3 = (String)session.getAttribute("name3");%>
<p>Session1的值为:<%=name1 %></p>
<p>Session2的值为:<%=name2 %></p>
<p>Session3的值为:<%=name3 %></p>
这样实现了session值的传递。
2.几种不同的跳转界面的方法,
前台form提交表单
<form action="judge.jsp" method="post" onsubmit="return check()">
<span style="color:red;font-size:25px;">账号</span><input type="text" name="useid" id="useid" />
<span style="color:red;font-size:25px;">密码</span><input type="password" name="pw" id="pw" />
<button type="submit">登录</button>
</form>
<span style="color:red;font-size:25px;">账号</span><input type="text" name="useid" id="useid" />
<span style="color:red;font-size:25px;">密码</span><input type="password" name="pw" id="pw" />
<button type="submit">登录</button>
</form>
跳转到judge.jsp界面,获取用户名和密码,并判断用户名密码是否正确<%
String useid = request.getParameter("useid");
String pw = request.getParameter("pw");
if(useid.equals("jsj")&&pw.equals("123")){
response.setCharacterEncoding("UTF-8");
response.sendRedirect("success.jsp?useid=" + useid + "");
String pw = request.getParameter("pw");
if(useid.equals("jsj")&&pw.equals("123")){
response.setCharacterEncoding("UTF-8");
response.sendRedirect("success.jsp?useid=" + useid + "");
response.sendRedirect()是指重定向跳转页面,跳转的页面文件的相对路径或URL以字符串形式写在括号内,
a)IE浏览器地址会改变,变成重定向地址,用两个请求。
b)是response方法,数据是不共享的,
c)response.sendRedirect是通过浏览器来做转向的,所以只有在整个页面处理完成后,才会有实际的动作。
d)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。
如: response.sendRedirect("success.jsp?useid=" + useid + "");
}
else{
%>
<jsp:forward page="fail.html">
<jsp:param value="<%=useid%>" name="useid"/>
<jsp:param value="<%=pw%>" name="pw"/>
</jsp:forward>
<%
e)不能再重定向的过程,把数据保存到request中
如: response.sendRedirect("success.jsp?useid=" + useid + "");
}
else{
%>
<jsp:forward page="fail.html">
<jsp:param value="<%=useid%>" name="useid"/>
<jsp:param value="<%=pw%>" name="pw"/>
</jsp:forward>
<%
}
%>
%>
Ⅱ.Servlet转发
a)转发,其地址栏不会发生改变
b)只能转发到当前web应用内的资源,不可以转发到外部web
c)转发过程中,数据可以保存在reques对象中,servlet和jsp共享同一个request对象
d)一个请求,一个响应。
例如:request.getRequestDispatcher("/list.jsp").forward(request,response);
3.用<jsp:param>封装数据信息,<jsp:forward>是当前JSP文件向另一个文件传递一个包含用户请求的request对象.
%>
<jsp:forward page="fail.html">
<jsp:param value="<%=useid%>" name="useid"/>
<jsp:param value="<%=pw%>" name="pw"/>
</jsp:forward>
<%