Web(二)
<%-- action:我们需要提交的地址 method:请求的方式 --%>
<form action="doMain.jsp" method="get">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>
<h1>登录成功</h1>
<%-- login.jsp中的form表单 get方式请求乱码
01.治标不治本 不推荐使用
String userName=new String(name.getBytes("iso-8859-1"),"utf-8");
02.治本
在服务器中的conf文件夹中找到server.xml文件中的Connector节点中 新增属性
URIEncoding="UTF-8"
--%>
<%
//根据login.jsp页面 name的属性值 获取 value
//post乱码 解决 是不是每个页面都需要设置 请求编码格式??? 后面 我们会用Filter
request.setCharacterEncoding("utf-8"); //请求的编码
response.setCharacterEncoding("utf-8"); //响应的编码
String name=request.getParameter("userName"); //获取用户名
String pwd=request.getParameter("password"); //获取密码
%>
<%-- 就是想把login页面的值 传递给last.jsp --%>
<%
out.print("用户名:"+name);
out.print("密码:"+pwd);
//把从login页面拿到的值 存储到了 request作用域中了
request.setAttribute("userName", name);
request.setAttribute("password", pwd);
//转发到了last.jsp 携带了数据 last页面能取得数据
//request.getRequestDispatcher("last.jsp").forward(request, response);
//重定向last.jsp 数据都会丢失! last页面不能取得数据
response.sendRedirect("last.jsp");
%>
<%-- get请求 --%>
<a href="last.jsp?userName=小黑黑2&password=123456">跳转到最后一个界面</a>
</body>
3、创建last.jsp看能不能获取login.jsp的值
<h1>last.jsp</h1>
<%
//在doMain中使用了转发后 能直接获取 login页面的值
String name=request.getParameter("userName"); //获取用户名
String pwd=request.getParameter("password"); //获取密码
out.print("用户名:"+name);
out.print("密码:"+pwd);
%>
<%
//从request.getAttribute()取值
request.setCharacterEncoding("utf-8"); //请求的编码
String name1=(String)request.getAttribute("userName");//获取用户名
String pwd2=(String)request.getAttribute("password"); //获取密码
out.print("用户名:"+name1);
out.print("密码:"+pwd2);
%>
</body>
二、通过request获取界面的多个值
<input type="checkbox" name="box" value="别玩手机">别玩手机"
<input type="checkbox" name="box" value="就玩手机">就玩手机"
<input type="checkbox" name="box" value="还玩手机">还玩手机"
<input type="checkbox" name="box" value="真玩手机">真玩手机"
<input type="checkbox" name="box" value="玩手机">玩手机">
<button type="submit">提交</button>
</form>
<%
request.setCharacterEncoding("utf-8");
//获取选中复选框的值
String [] boxs=request.getParameterValues("box");
//首先进行判断 必须先判断非空
if(boxs!=null&&boxs.length!=0){
for(String box:boxs){
out.print(box+"<br/>");
}
}else{
//重定向到request1界面
response.sendRedirect("request1.jsp");
}
%>
<h1>request对象常用的方法</h1>
获取http请求中使用的方法名称 <%=request.getMethod() %><br/>
获取http请求中调用servlet的url部分 <%=request.getServletPath() %><br/>
获取http请求中MIME类型 <%=request.getContentType() %><br/>
获取请求中服务器主机名称 <%=request.getServerName() %><br/>
获取请求中服务器的端口号名称 <%=request.getServerPort() %><br/>
获取请求中服务器的ip地址 <%=request.getRemoteAddr()%><br/>
获取请求中服务器的ip地址 <%=request.getRemoteHost()%><br/>
获取请求中使用的协议 <%=request.getScheme() %><br/>
</body>
<form action="session2.jsp" method="post">
<table><tr> <td>用户名:</td>
<td><input type="text" name="userName"></td></tr>
<tr> <td>密码:</td>
<td><input type="password" name="password"></td> </tr>
<tr><td><input type="submit" value="登录"></td></tr> </table>
</form> </body>
<%
request.setCharacterEncoding("utf-8");
//获取session1.jsp的信息
String name= request.getParameter("userName");
String pwd= request.getParameter("password");
//把信息保存到session
session.setAttribute("sessionName", name);
session.setAttribute("sessionPwd", pwd);
//把信息保存到request
request.setAttribute("requestName", name);
request.setAttribute("requestPwd", pwd);
//重定向 request作用域的值消失 session呢???
response.sendRedirect("session3.jsp");
%>
<form action="session3.jsp" method="post">
<table>
<tr> <td>银行卡密码:</td>
<td><input type="text" name="card"></td></tr>
<tr><td><input type="submit" value="登录"></td></tr>
</table></form></body>
<%
request.setCharacterEncoding("utf-8");
//获取银行卡密码
String card= request.getParameter("card");
//清空session中指定的属性
session.removeAttribute("sessionPwd"); //删除了密码
//从session中获取数据
String name=(String)session.getAttribute("sessionName");
String pwd=(String)session.getAttribute("sessionPwd");
//从request中获取数据
String rName=(String)session.getAttribute("requestName");
String rPwd=(String)session.getAttribute("requestPwd");
//让session失效 以秒为单位
session.setMaxInactiveInterval(3);
%>
<%-- 设置session的失效
01.在tomcat中的conf文件夹下面的web.xml 分钟 计算的 默认30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
02.项目中的web.xml中也可以设置 自定义 项目中的为准 分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
03.session.setMaxInactiveInterval(s) 当前的会话时间 不是整个web
--%>
session取得的数据:<br/>
您的用户名是:<%=name %><br/>
您的密码是:<%=pwd %><br/>
您的银行卡密码是:<%=card %><br/>
<hr/>
request取得的数据:<br/>
您的用户名是:<%=rName %><br/>
您的密码是:<%=rPwd %><br/></body>
private String name;
private String pwd;
@Override
public String toString() {
return "User [name=" + name + ", pwd=" + pwd + "]"; }
public User() {
super(); }
public User(String name, String pwd) {
super();
this.name = name;
this.pwd = pwd; }
public String getName() {
return name; }
public void setName(String name) {
this.name = name; }
public String getPwd() {
return pwd;}
public void setPwd(String pwd) {
this.pwd = pwd;}
}
<body>
<%
//创建一个User对象
User user=new User("admin","123456");
//把对象放进session作用域
session.setAttribute("user", user);
%>
<a href="session/2.jsp">跳转第二个界面</a>
</body>
<%
//重定向
response.sendRedirect("3.jsp");
%>
</body>
<body>
<%
User user=(User)session.getAttribute("user");
out.print(user.getName());
%>
<%=session.getAttribute("user")%>
</body>
<form action="cookie/2.jsp" method="post">
姓名:<input type="text" name="userName"/>
<button type="submit">登录</button>
</form>
<%
//获取第二个界面的信息
String msg=(String)request.getAttribute("msg");
//有可能Null
if(msg!=null){
out.print(msg);
}
%>
</body>
<body>
<%
request.setCharacterEncoding("utf-8"); //解决post请求乱码问题
//获取登陆的用户名
String name =request.getParameter("userName");
//判断用户名是不是admin
if(name.equalsIgnoreCase("admin")){
//在返回到第一个界面时 给一个提示
request.setAttribute("msg", "不允许使用admin登录!");
//转发
request.getRequestDispatcher("1.jsp").forward(request, response);
}else{
//成功! 跳转到下个界面,并把用户名传递下去
//01.创建cookie 如果有中文 必须需要设置编码格式
Cookie cookie=new Cookie("user",URLEncoder.encode(name,"utf-8"));
//02.如果想给cookie设置有效期 必须在增加之前
cookie.setMaxAge(20);
//03.给响应新增cookie
response.addCookie(cookie);
//重定向
response.sendRedirect("3.jsp");
}
%>
</body>
<body>
<%
//获取第二个界面的cookie
Cookie [] cookies= request.getCookies();
String name="";
//遍历数组 获取我们想要的 user
for(Cookie cookie:cookies){
if(cookie.getName().equals("user")){ //找到了
//进行中文的解码
name=URLDecoder.decode(cookie.getValue(), "utf-8");
out.print("用户名====》"+name);
}
}
%>
</body>

Web(二)的更多相关文章
- java web 二维码生成
pom支持: <!-- 二维码支持包 start--> <dependency> <groupId>com.google.zxing</groupId> ...
- 从桌面到 Web - 二十几天学 ASP.NETCore 1
这么多年一直从事桌面开发,一直没有时间好好学学 web 开发.感觉自己就像从石器时代走来的古代类人猿.由于工作的调整,现在终于有时间学习一下 Web 开发.出于对技术和框架的熟悉和继承,决定还是学习 ...
- java web(二) Tomcat数据源
一.数据源的产生 1.JDBC操作原理 (1) 加载数据库驱动程序(数据库驱动程序可通过classpath配置): Class.forName(); (2)通过DriverManager类取得数据库连 ...
- java web(二): servlet的简单使用和介绍
前言:通过编写一个servlet类,向浏览器发送hello world来阐述servlet. 一:创建动态web项目 1. 首先切换到javaEE视图. 在ecplise左边即项目管理器哪里右键点击新 ...
- Java Web(二) Servlet中response、request乱码问题解决
三月不减肥,五月徒伤悲,这就是我现在的状态,哈哈~ 健身.博客坚持. --WH 一.request请求参数出现的乱码问题 get请求: get请求的参数是在url后面提交过来的,也就是在请求行中, M ...
- qt cef嵌入web(二)
在qt cef嵌入web文章中已经讲述了怎么把cef页面嵌入到qt程序中,但是这样并不完美,因为如果需要在多个窗口上创建cef浏览器部件的话,在 消息监听部分没有办法做区分多个浏览器事件,在这篇文章中 ...
- Java Web(二) Servlet详解
什么是Servlet? Servlet是运行在Web服务器中的Java程序.Servlet通常通过HTTP(超文本传输协议)接收和响应来自Web客户端的请求.Java Web应用程序中所有的请求-响应 ...
- django搭建web (二) urls.py
URL模式: 在app下的urls.py中 urlpatterns=[ url(正则表达式,view函数,参数,别名,前缀)] urlpatterns=[ url(r'^hello/$',hello. ...
- web(二)html
html编写规范 在输入开始标签时同时输入结束标签,以防丢失标签 保证缩紧格式(一个tab键) 主动添加注释(快捷键 选中后 Ctrl+Shift+/) Html的调试 开发者工具(快捷键F12)是前 ...
- Skyline(6.x)-Web二次开发-多窗口对比
GitHub 上获取源码 1. 打开个 3D 窗口 一个页面加载多个 TerraExplorer3DWindow 和 SGWorld 等只有第一个能用(即使用 iframe 也是一样) 所以我决定打开 ...
随机推荐
- oracle11g-linux 归档处理
在使用oracle时突然登录不上去了提示:ORA-00257:archiver error.Connect internal only,until freed. 查遍很多资料,都指向“归档日志空间不足 ...
- ThinkPhp 更改 BIT 类型的问题
在使用ThinkPhp更改字段为BIT 类型的注意了,您将会遇到以下错误信息: 这是因为ThinkPhp在使用setField或Save方法时,将你的值更改成了字符串类型 而TINYINT 类型是不 ...
- MySQL SELECT 执行的具体步骤
1:SELECT 执行的顺序 8SELECT 9DISTINCT <select_list> 1FROM <left_table> 3JOIN <right_table& ...
- 【转】《iOS7 by Tutorials》系列:iOS7的设计精髓(上)
简介: 本文翻译自<iOS7 by Tutorials>一书的第一章“Designing for iOS 7”,主要从程序员角度介绍了iOS7的新设计理念,堪称神作!本文翻译仅作学习交流之 ...
- 【PHP】php生成一个不重复的数字(订单号、会员号)
1.目的:利用php的do .. while 生成一个不重复的字符串或者数组,比如(订单号.会员号) 2.不废话,代码来: $repeat_order = array(); do{ $ordersn ...
- Android——TabHost(标签容器)相关知识总结贴
android 2.3 r1 中文 api (58) —— TabHost http://www.apkbus.com/android-18911-1-1.html android中文api (5 ...
- [Aaronyang] 写给自己的WPF4.5 笔记9[复杂数据处理三步曲,数据展示ListView泪奔2/3]
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 作者留言: 小小的推荐,作者的肯定,读者的支持. ...
- SNF快速开发平台MVC-审核流,审核完成后会给下一个审核人发邮件,下一个审核人可以不登录系统,在邮件里进行审核处理
审核流设计和使用参考以下资料: 审核流设计 http://www.cnblogs.com/spring_wang/p/4874531.html 审核流实例 http://www.cnblogs.com ...
- 译:1. RabbitMQ Java Client 之 "Hello World"
这些教程介绍了使用RabbitMQ创建消息传递应用程序的基础知识.您需要安装RabbitMQ服务器才能完成教程 1. 打造第一个Hello World 程序 RabbitMQ是一个消息代理:它接受和转 ...
- git笔记-9-29
//将工作区的a.txt文件更新到最后一次提交到本地仓库的状态,如果需要将文件回滚到某个特定的版本,将HEAD改成那个commit的id即可 git checkout HEAD a.txt //如果将 ...