servlet下一个页面获取上一个页面的信息
来源:互联网 发布:守望先锋mac能玩吗 编辑:程序博客网 时间:2024/06/05 18:12
获取上一个页面的信息的方法有三种方式,以获取用户名和密码为例
1.使用关键字Static关键字可以实现,static修饰的变量在一个类中只保存一份,可以通过getter和setter获取。Java类实现如下:
public class DataTest { private static String userName; private static String password; public static String getUserName() { return userName; } public static void setUserName(String userName) { DataTest.userName = userName; } public static String getPassword() { return password; } public static void setPassword(String password) { DataTest.password = password; }}
登录界面使用servlet实现,jsp实现比较好,然而现在我还不会,所以以后再改进吧。基本上是由HTML组成,提交方式为postpublic class LoginServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter writer=response.getWriter(); writer.println("<html><head><title>Login</title><head>"); writer.println("<body><h3>Login Frame</h3>"); writer.println("<form method='post' action='/myServlet/control'>"); writer.println("用户名:<input type='text' name='username' /><br/>"); writer.println("密 码:<input type='password' name='password' /><br/>"); writer.println("<input type='submit' value='登录'/>"); writer.println("</form></body></html>"); } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { this.doPost(request,response); }}
然后由一个servlet控制跳转到哪一个页面,使用response.sendRedirect方法,使用httpfox可以看到会出现一个状态码,表示资源需要跳转到另一个页面。public class ControlServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); //解决中文乱码 request.setCharacterEncoding("utf-8"); //获取用户名和密码 String userName=request.getParameter("username"); String password=request.getParameter("password"); //第一种方法,使用全局变量static DataTest.setUserName(userName); DataTest.setPassword(password); response.sendRedirect("/myServlet/MainFrameServlet"); }
然后在主界面就可以获取用户名和密码
public class MainFrameServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter writer=response.getWriter(); writer.println("<html><head><title>mainFrame</title></head>"); writer.println("<body><h3>main Frame</h3>"); writer.println("userName="+ DataTest.getUserName()); writer.println("password="+DataTest.getPassword()); writer.println("</body></html>"); }
2.使用sendRedirect(不能传对象)
在ControlServlet中添加以下代码
//第二种方法,使用sendRedirect将变量名放入资源名后面,只能传字符,不能传对象//解决中文乱码问题,将userName编码设置为“UTF-8”userName= URLEncoder.encode(userName,"UTF-8");
response.sendRedirect("/myServlet/MainFrameServlet?username="+userName+"&password="+password);然后在主界面使用request.getParameter()获取//字符串要与sendRedirect中的字符保持一致 String userName=request.getParameter("username"); String password=request.getParameter("password"); writer.println("username="+userName+" password="+password);
3.使用session(可以传对象)
在ControlServlet中添加以下代码//第三种方法,使用session,可以传对象 request.getSession().setAttribute("name",userName); request.getSession().setAttribute("password",password); response.sendRedirect("/myServlet/MainFrameServlet");
然后在主界面使用request.getParameter()获取String name=(String)request.getSession().getAttribute("name");String password=(String) request.getSession().getAttribute("password");
writer.println(name);writer.println(password);
session传对象的方法新建User类,包含username和password变量,并且实现getter和setter方法,然后在ControlServlet中新建一个对象,并将用户名和密码传入对象,代码如下:
User user=new User(); user.setUsername(userName); user.setPassword(password); request.getSession().setAttribute("userObj",user); response.sendRedirect("/myServlet/MainFrameServlet");
然后在主界面获取对象,并得到用户名和密码User user=(User)request.getSession().getAttribute("userObj"); writer.println("username="+user.getUsername()+" password="+user.getPassword());
阅读全文
0 0
- servlet下一个页面获取上一个页面的信息
- 获取上一个页面的地址
- 获取上一个页面的url
- asp.net 获取上一个页面的地址
- 获取上一个页面的跳转地址
- Servlet从上一个页面获取参数(中文乱码解决方法)
- C# 获取上一个页面/当前页面的URL
- 通过HttpServletRequest获取上一个页面
- servlet获取前台的验证信息(html页面)
- JSP获取上一个访问页面URL的方法
- js获取上一个页面传来的URL参数
- ASP.NET 获取上一个页面的Url链接
- 返回上一个页面的代码
- java,jsp获取上一个访问页面URL
- 首次进入页面刷新1次|JSP获取上一个访问页面URL的方法
- php获取当前的上一个月和下一个月
- [Jweb] Servlet 如何从上一个页面取得参数. ShowParameters.java
- 得到上一个页面的访问地址
- 闭包初体验
- Python006循环和遍历列表元组集合字典
- bzoj1123 求割点+乘法原理
- dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found.
- 排序算法之堆排序
- servlet下一个页面获取上一个页面的信息
- 深拷贝与Serializable简介
- overlay fs挂载及操作测试
- Android数据序列化方案研究
- IDL输出Excel中直接列分隔的txt文件方法
- 搜索手机里面的所有App,找到其中一个并启动
- Intel的视频硬编码方法
- <Java虚拟机>读书记录1-JVM运行时数据区域
- 求最大上升子序列