第三天的学习内容:http://www.cnblogs.com/tobecrazy/p/3453041.html

jsp内置对象 out

out

属性类型:JspWriter 作用域:page 作用:一个输出缓存流,向客户端浏览器输出信息

JspWriter类中常用的方法和功能

  • flush() 输出缓存区的数据
  • close() 关闭输出流
  • clearBuffer() 清除缓存区的数据,并把数据写到客户端浏览器中
  • clear() 清除缓冲区内容,不写到客户端浏览器
  • getBufferSize() 获取缓冲区大小,缓冲区大小可以使用<%@page buffer=”bufferSize” %> 设置
  • getRemaining() 获取缓冲区没有使用空间大小
  • isAutoFlush() 若设置自动缓存返回true否则返回falsh

可以用<%@page isAutoFlush=”true/false” %>设置

使用out对象输出中文字符乱码解决办法,一般只需在page指令设置目标字符串编码类型

<%@ page contentType=”text/html;charset=gbk”%>

如:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 将字符编码设置为utf-8

out 对象中的print和println在jsp页面中效果一样,如果需要换行,则使用<br>标签

内置对象request

request的对象的主要作用是接收客户端HTTP协议发送到服务器端请求数据

HTTPServletRequest接口常用方法和功能:

  • getCookies() 获取保存客户端主机中的Cookie对象数组
  • getSession() 获取会话session对象,如果还没有创建出session对象实例,系统会自动创建
  • getHeader() 获取HTTP协议中定义的与请求头相关的某个指定名称的信息。

如:request.getHeader(“User-Agent”) 返回客户端浏览器的版本号、类型

下列代码可以获取浏览器类型

if(request.getHeader(“User-Agent”).indexOf(“MSIE”)!=-1)

{

}

  • getAttribute() 返回指定名称request作用域中的属性值,若没有返回null
  • getMethod() 获取客户端向server端传送数据的方式 可以是post get delete put
  • getParameter() 获取客户端传送给server端的指定名称的请求参数值
  • getParameterNames()  获取客户端向server端传送所用请求参数的的参数名,返回的结果集是一个Enumeration枚举类对象实例
  • getParameterValues() 获取指定参数名所请求的值,一般用于获取复选框等提交请求参数值
  • getQuerySting 获取查询字符串,该查询字符串由客户端浏览器以get请求方式向server端传送
  • getRequestURL() 获取发出请求字符串的客户端地址

实例: 使用request实现用户登录

新建一jsp页面,名为login.jsp

代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isErrorPage="true" errorPage="error.jsp" %> <%
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>This is my first JSP page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body> <form method="post" action="welcome.jsp">
username:
<input type="text" name="text" >
<br>
password:
<input type="password" name="password">
<br>
userType:
<select name="userType">
<option value="user" >user</option>
<option value="master"> master</option>
</select> <input type="submit" name="submit" />
</form> </body>
</html>

再新建一个响应页面 welcome.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=gbk" %>
<jsp:useBean id="login" class="mypackage.UserInfoActionForm" scope="session"></jsp:useBean> <!-- 这里使用昨天创建的UserInfoActionForm-->
<%
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 'charset.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<%
login.setUserName(request.getParameter("text"));
login.setPassWord(request.getParameter("password"));
login.verifyID(); if(login.verifyID() )
{
out.print("登录成功,欢迎"+request.getParameter("userType") + login.getUserName());
//out.print(request.getCookies().toString() +request.getSession());
if(request.getHeader("User-Agent").indexOf("MSIE")!=-1)
{
out.print("<br>"+"your browser is IE");
}
else
{
out.print("<br>"+"your browser isn't IE");
} }
else
{
out.print("登录失败,用户名或密码错误");
}
%>
</body>
</html>

其中UserInfoActionForm的代码如下:

package mypackage;

public class UserInfoActionForm {

    /**
* @param args
* two parameters add get/set methods
*/ String userName=null;
String passWord=null;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
} public boolean verifyID( ) //这个method是验证用户名和密码,如果用户名是aaa 且密码是bbb则返回true
{
if(userName.equals("aaa") && passWord.equals("bbb"))
{
System.out.print("login successful\n");
return true;
}
else
{
System.out.print("login failure\n");
return false;
} } }

使用这个类的目的是不在jsp页面实现用户名密码校验,若不然,安全性大打折扣

效果如下:

登录页面:

登录成功,输入用户名aaa和密码 bbb

输入用户名别的,则登录失败

java web 学习 --第四天(Java三级考试)的更多相关文章

  1. java web学习总结(四) -------------------HTTP协议

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...

  2. java web 学习 --第九天(Java三级考试)

    第八天的学习内容如下:http://www.cnblogs.com/tobecrazy/p/3468458.html Java servlet 技术 Servlet是使用java servlet应用程 ...

  3. java web 学习 --第一天(Java三级考试)

    1.Servlet servlet是运行在web server或 application server端的Java程序,主要用于在服务器端产生动态内容. servlet 在服务器端主要有以下作用 读取 ...

  4. Java Web学习(十一)Java过滤器

    一.引言 上一篇文章学习了java三大器的拦截器,拦截器主要是针对于action请求进行拦截处理的,那么对于requst的一些信息如果在调用前,想先进行过滤和处理,那么就要使用到第二个神器,也就是本文 ...

  5. java web 学习 --第二天(Java三级考试)

    第一天的学习在这http://www.cnblogs.com/tobecrazy/p/3444474.html 2.jsp 基础知识 Jsp页面中的Java脚本主要有3部分:声明(Declaratio ...

  6. java web 学习十四(JSP原理)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  7. java web 学习 --第八天(Java三级考试)

    第七天的学习内容:http://www.cnblogs.com/tobecrazy/p/3464231.html EL表达式 EL : Expression Language 使用EL表达式可以减少& ...

  8. Java Web学习(四)http协议

    文章更新时间:2020/07/24 一.概念 定义 HTTP:超文本传输协议,是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP协议:用于定义客户端与 ...

  9. [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. 【struts2】Result和ResultType

    简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里.Result仅仅是个字符串,仅仅是用来指示下一个页面的,那么如何才能够到达下一个页面呢? ...

  2. 如何快速有效的修改java的环境变量

    之前已经修改过jdk的环境变量,,,,在/etc/profile下,,, export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera export PATH=${J ...

  3. mongodb在WEB开发中的应用与实践

    一.mongodb是什么? 一套高性能.易开发的文档型数据库.他使用键值对形式存放数据,能够存放包括字符串.数组.数据序列.图片.视频等在内的大多数数据文档.MongoDB完善的设计,搞笑的可编程性使 ...

  4. 存储过程获取最后插入到数据表里面的ID

    存储过程获取最后插入到数据表里面的ID SET NOCOUNT on;---不返回影响行数提高性能GOcreate proc [sp_bbs_thread_Insert] @id int output ...

  5. cf319.B. Modulo Sum(dp && 鸽巢原理 && 同余模)

    B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  6. 【PHP面向对象(OOP)编程入门教程】3.什么是面向对象编程呢?

    就不说他的概念,如果你想建立一个电脑教室,首先要有一个房间, 房间里面要有N台电脑,有N个桌子, N个椅子, 白板, 投影机等等,这些是什么,刚才咱们说了, 这就是对象,能看到的一个个的实体,可以说这 ...

  7. Ubuntu 14 编译安装 XDebug - 2.3.3 For PHP - 5.4.45

    安装过程如下: 1.下载XDebug源码:http://xdebug.org/files/xdebug-2.3.3.tgz 2.解压到某个目录,如 /opt/software/xdebug-2.3.3 ...

  8. Cocoa是什么?

    一.什么是Cocoa ①Cocoa的来源 早些年,苹果公司启动了Copland计划,致力于开发出自己的操作系统,可惜后来Copland计划逐渐的失控了,苹果公司最终决定放弃开发,转向从别的公司购买下 ...

  9. netbeans tomcat

    http://www.cnblogs.com/fengzy/archive/2013/05/18/3086371.html http://blog.csdn.net/xumengxing/articl ...

  10. ZipArchive 打包下载压缩包

    用php的header()方式下载压缩包. 要点:1.不能在header导出压缩包前向浏览器输出内容,否则文件下载压缩包成功,打开的压缩包也会显示被破坏. 2.在压缩文件包的php代码前不可以有js脚 ...