<
&
<
&
c
register.jsp
<form action="" methed="post">
jsp内置对象:
request response 与请求相关
out
session 与客户端相关,换了一个浏览器session改变
applicantion 与Tomcat相关
<%
if(isSuccess){
// out.print("<font color='green'>注册成功</font>");
%>
<font color='green'>注册成功</font>
<%
}else{
// out.print("<font color='red'>注册失败</font>");
%>
<font color='red'>注册失败</font>
<%
}
%>
out.print()和response.getWriter.print()区别
前者输出在当前位置,后者输出在页面最前位置
状态码 :
200 正常
404 找不到页面
怎么查看request 和reponse ?
用谷歌浏览器 network ----all
包的导入:
<%@ page import="java.util.Date" %>
引入多个包可以写在一起
注释:
1.java注释是在<% %>的java代码中起作用
2.jsp注释使用<%-- --%>,查看网页源码不可见
3.html注释 <!-- -->,查看网页源码可见
jsp定义表达式:
<%! int count=0;%> 这里定义的count相当于成员变量,我们知道jsp在我们创建的时候会为我们创建对应的Servlet类,那么这里的count就是这个类的成员变量,他随类而存在;但是普通方式的变量是局部变量,每次执行伴随着创建和销毁;
值得注意的是,方法也是用这种方式定义。
jsp输出表达式:
<%=str %> 加入str使我们定义的一个变量那么通过这种方式就可以直接将str返回,这里的str可以换成某个有返回值的方法
new String(request.getParameter("sex")).getBytes("iso-8859-1"),"utf-8");
<%! 定义变量 %> 成员变量(网页不关闭会一直保存) 定义在<% %>是局部变量
<%@ 导入包名 %>
<%-- 注释 --%>
<%= 变量、函数 %> 输出内容(变量、函数)
schema约束()
XML
dom是用来解析标签的,解析成一个树,并得到一个document对象
dtd引入的三种方式:
1、内部引入,直接写在xml文件里
2、本地的外部引入,即自己定义dtd约束
3、网络上的外部引入,即使用网络上的别人已经开发好的dtd约束
XML:可扩展标记语言,是一种很像超文本标记语言的标记语言;是一种用于标记电子文件使其具有结构性的标记语言;是用来编写配置文件的;是传输数据用的;它非常适合万维网传输;W3C的推荐标准;第一个作用是用来编写配置文件,第二个作用是数据传输;
转发请求 可以从一个jsp,访问另一个jsp的数据
request.setAttribute("message","注册成功,请登录!");
\/ \/ 这是请求转发代码 \/ \/
\/ 从当前jsp 跳转到 其他jsp \/
request.getRequestDispatcher("login.jsp").forward(request,response);
////////////////////
Object mcg=request.getAttribute("message");
out.println(mcg);
这样可以 是请求转发
-----------------------------------------
getrequestdispatcher
// 页面与页面之间传递数据 用 一个页面request.setAttribute(设置数据) ,到另一个页面request.setAttribute(获取数据)并显示,
//request生命周期,
//用户端,每请求一次,服务器端就会生成一个request`responce对象,
//把对象的参数返回给客户端,然后服务器端就会把这次生成的对象销毁,
//下次再访问,又会生成一个新的request`responce对象,每次访问每次都会生成新的
DBu.java是个方法,用户信息能不能存储成功,怎么存储,全都写在这个里面
package Javaweb02.util;
import java.util.HashMap;
import java.util.Map;
import Javaweb02.model.User;
/**
* 这里是 定义了一个方法,(假设)调用了这个方法,就把 用户发出的数据 存入 服务器的数据库 这个意思,返回告诉你true/false,存入成没成功
* @author sgx
*
*/
public class DBu {
// /3..键 是 显示的是用户的名字 String username
// / 存着对应 User的信息
private static Map<String , User> db = new HashMap<String , User>();
// 2.不一定添加成功(可能用户名重复) 所以返回值Boolean 默认添加成功
public static boolean adduser(String username, String password , int age, String sex) {
//1.代替数据库 创建集合 存储数据
// TODO Auto-generated method stub
//3.因为数据库里的 username不能需重复(名字还能重复吗?)
if(db.containsKey(username)) {//所以做一个判断 新加进来的key(username) map里现在有没有
// 如果已经有了 ,重复了 就报添加失败
//System.out.println("用户名重复,存储失败");
return false;
}else { // 如果没有就 把username(键) value(值) 存到Map里面,并提示 存储成功
//System.out.println("存储成功");
// 4.创建一个user对象 里面存的都是 user的参数(值) 把String用户名 和 user值存到 Map集合里面
User user = new User(username , password, age , sex);
db.put(username, user);
return true;
}
// 5. 因为现在还没学 数据库,所以上面的代码都是存到了集合里
// 如果存到数据库,那上面的代码 就是 连接数据库 并且把 User存到数据库里面的
}
<form action="" method="post">
用户名:<input type="text" name="username"/> <br>
密码:<input type="password" name="password"/> <br>
年龄:<input type="text" name="age"/> <br>
性别:男<input type="radio" name="sex" value="男"/> 女<input type="radio" name="sex" value="女"/> <br> <!-- name数据库的字段名 value字段里面的值 -->
<input type="submit" value="注册"/>
</form>