Jsp 常用内置对象有以下五种:
out、request、response、session、application
request对象
request对象的常用方法
方法名称 | 说明 |
---|---|
String getParameter(String name) | 根据网页表单组件名称获取网页交接数据 |
String [] get ParameterValues(String name) | 获取一组以相同名称命名的表单组件交接数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码,在调用requsert.grtParameter()方法之前进行设定,可以用于解决中文乱码问题 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个 javax.servlet.RequestDispatcher 对象,该对象的forward(request,response)方法用于转发请求; |
实现简单的实现传值如下:
实现效果图:
shangjiyi.jsp文件里面的编码如下:
<body>
<form action="shangjiyi2.jsp" method="post">
<table>
<tr><td>用户名:</td><td><input type="text" name="name"></td></tr>
<tr><td>密码:</td><td><input type="password" name="mima"></td></tr>
<tr><td>确定密码:</td><td><input type="password" name="mima2"></td></tr>
<tr><td>性别:</td><td>
<input type="radio" name="xuan" value="男" checked>男
<input type="radio" name="xuan" value="女">女
</td></tr>
<tr><td>电子邮箱地址:</td><td><input type="email" name="youxiang"></td></tr>
<tr><td>出生日期:</td><td>
<input type="text" name="nian">年
<select name="yue">
<option value="0">1月</option>
<option value="1">2月</option>
</select>月
<select name="ri">
<option value="1">1日</option>
<option value="2">2日</option>
</select>日
</td></tr>
<tr><td><input type="submit" value="注册"></td></tr>
</table>
</form>
</body>
shangjiyi2.jsp文件里面的代码如下:
<body>
<%
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String mima=request.getParameter("mima");
String mima2=request.getParameter("mima2");
String xuan= request.getParameter("xuan");
String youxiang= request.getParameter("youxiang");
String nian= request.getParameter("nian");
String yue= request.getParameter("yue");
String ri= request.getParameter("ri");
%>
<table>
<tr><td>用户名:</td><td><%=name%></td></tr>
<tr><td>密码:</td><td><%=mima%></td></tr>
<tr><td>确定密码:</td><td><%=mima2%></td></tr>
<tr><td>性别:</td><td>
<%=xuan%>
</td></tr>
<tr><td>电子邮箱地址:</td><td><%=youxiang%></td></tr>
<tr><td>出生日期:</td><td>
<%out.print(nian+"年"+"\t"+yue+"月"+"\t"+ri+"日"); %>
</td></tr>
<tr><td><input type="submit" value="注册"></td></tr>
</table>
</body>
编码乱码的时候转换如下:
String name=request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
response对象
response 对象的常用方法
方法名称 | 说明 |
---|---|
void addCookie(Cookie cookie) | 向客户端添加Cookie |
void setContentType(String type) | 设置 HTTP 响应的 contentType 类型 |
void setCharacterEncoding(String charset) | 设置响应所采用的字符编码类型 |
void sendRedirect(String location) | 将请求重新定位到一个新的 URL 上 |
实现小型登陆效果如下:
实现效果图:
shangjier.jsp文档里面的代码如下:
<body>
<form action="shangjier2.jsp" method="post">
<table>
<tr><td>用户名:</td><td><input type="text" name="name"></td></tr>
<tr><td>密码:</td><td><input type="password" name="mima"></td></tr>
<tr><td><input type="submit" value="登陆"></td></tr>
</table>
</form>
</body>
shangjier2.jsp文档里面的代码如下:
<body>
<%
request.setCharacterEncoding("UTF-8");
String name= request.getParameter("name");
String mima= request.getParameter("mima");
if("lucky".equals(name)&&"123456".equals(mima)){
request.setAttribute("name", name);
request.getRequestDispatcher("shangjier3.jsp").forward(request, response);
}else{
response.sendRedirect("shangjier.jsp");
}
%>
</body>
shangjier3.jsp文档里面的代码如下:
<body>
<%
request.setCharacterEncoding("UTF-8");
out.print("你好:"+ request.getAttribute("name"));
%>
</body>
转发 与 重定向
转发(
request.getRequestDispatcher("路径").forward(request,response); 来跳转网页
转发使用来传值request.setAttribute("name2", name); name2是变量名 name是给他的值
在转发的网页上使用 request.getAttribute("name2"); 来获取值 他说Objeck类型
)
response.sendRedirect("路径"); 来跳转网页
response.sendRedirect("路径?name1="+name); 使用?传值name1是变量名 name是给他的值
response.sendRedirect("路径?name1="+name+"&name2="+an) 传多个参数的时候用&实现多个值传送
)
session对象
方法名称 | 说明 |
---|---|
String getId() | 获取 sessiond |
void setMaxInactiveInterval(int interval) | 设定 session 的非活动时间 |
int getMaxInactiveInterval() | 获取 seeion 的有效非活动时间,以秒为单位 |
void invalidate() | 设置 session 对象失效 |
void setAuttribute(String key,Object value) | 以 key/value 的形式将对象保存到 session 中 |
Object getAuttribute(String key); | 通过key 获取 session 中保存的对象 |
void removeAttribute(String key) | 从 session 中删除指定 key 对应的对象 |
if(request.getParameter("name").equals("lucky")&&request.getParameter("mima").equals("123456")){
String name=request.getParameter("name");
String mima=request.getParameter("mima");
Uset u=new Uset(name,mima);
session.setAttribute("an",u);
session.setMaxInactiveInterval(10);
request.getRequestDispatcher("2.jsp").forward(request,response);
}else{
response.sendRedirect("shangjisan.jsp");
}
2.jsp文档里面的代码如下:
response.sendRedirect("1.jsp");
}else{
Uset an=(Uset)session.getAttribute("an");
String name=an.getName();
out.print(an.getName());
}