JSP内置对象request 常用方法 案例

来源:互联网 发布:数据库笛卡尔积运算 编辑:程序博客网 时间:2024/06/06 14:32

JSP九大内置对象有 request,out,response,application,session,pageContext,page,confid,exception

下面我写一个关于request经典案例 

1.request
   1.1 getParameter("name"):String  获取提交过来的数据(表单,url地址中)
  
   1.2 getParameterValues("name"):String[]  一批同名的value值的集合
   
   1.3 setCharactorEncoding("utf-8"); post
   
   1.4 getAttrubute("key"):Object 获取指定的key对应的value
   
   1.5 setAttribute("key","value");
   
   1.6 getRequestDispatcher("目标地址").forward(request,response);
   
   1.7 获取远程计算机的ip  getRemoteAddr();


register.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>注册页面</title>  </head>    <body>     <form action="do.jsp" method="post">     用户名:<input type="text" name="txtname"  value="<%=request.getAttribute("name")%>"/>     密码: <input type="password" name="txtpwd"/>       <input type="submit" value="提交"/>     </form>     </body></html>

do.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>处理页面</title>  </head>    <body>     <%          //解决乱码          request.setCharacterEncoding("utf-8");         //    1.取出name属性  对应的value值     String name=request.getParameter("txtname");     //2.   取值      String pwd=request.getParameter("txtpwd");     if(name.equals("中文")&&pwd.equals("1")){     //作用域保存name     request.setAttribute("name", name);     //跳转操作     request.getRequestDispatcher("/index.jsp").forward(request,response);     }else{      request.setAttribute("name", name);      request.getRequestDispatcher("/register.jsp").forward(request,response);     }      %>  </body></html>

index.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 'index.jsp' starting page</title>  </head>    <body>  欢迎<%=request.getAttribute("name")   %>  </body></html>

效果图如下 当你刷新页面时会有一个null值 这是因为在register.jsp中在用户名中直接写的value="<%=request.getAttribute("name")%>" 这里会返回一个null值 要想解决这个问题用三元运算符 


当你登录失败时会保留这个登录失败的用户名



当你成功时




0 1