javaweb学习笔记(2)
jsp的页面元素
jsp的页面元素:html 脚本scriptlet 注释 指令
a.脚本scriptlet
<% 局部变量 java语句
%>
<%! 全部变量 定义方法
%>
<%=输出表达式%>(不需要分号)
一般而言,修改web.xml、配置文件及java代码 建议重启tomcat服务器
如果修改jsp/html/css/js则不需要重启tomcat服务器
注意:jsp中的out.println()不能显示回车
通过html标签来回车out.print(""+"<br/")
b.page指令
<%@ page contentType=“text/html;charset=UTF-8” language=“java” import=“java.util.Date” %>
属性:
language:jsp页面使用的脚本语言
import:导入类
pageencoding:jsp文件自身编码 jsp->java
contentType:浏览器解析jsp的编码
c.注释
html
可以被用户通过浏览器查看源码所观察到
java // /**/
jsp <%-- --%>
请求方式
get与post请求方式的区别:
a.get方式在地址栏显示请求信息(地址栏能够容纳的信息有限4-5kb;
http://localhost:8080/demo1_war_exploded/show.jsp?username=admin&userpwd=123&usersex=on&userage=11&userbirth=2020-06-10&userhob=%E7%AF%AE%E7%90%83
如果请求数据存在大文件会出现地址栏无法全部容纳而出错 post则不会显示
b.若有文件上传,操作必须是post
post较安全
request与response对象
request对象
request:请求对象,存储客户端向服务端发送的请求信息
request对象的常见方法:
String getParameter(String name):根据请求的字段名key(input标签的name值)返回字段值value(input标签的value值)
String[] getPatameterValues(String name);根据请求的字段名key,返回多个字段值value
void setCharacterEncoding(“编码格式"utf-8”);设置请求编码(tomcat7以前默认iso-8859-1,tomcat8以后默认utf-8)
getRequestDispatcher(" ").forward(request,response); 请求转发
ServletContext getServletContext(); 获取项目ServletContext对象
使用request实现注册
🌰使用request实现注册
registe.jsp->show.jsp
<%--
Created by IntelliJ IDEA.
User: Nancy
Date: 2020/6/12
Time: 10:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>register</title>
</head>
<body>
<form action="show.jsp">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="userpwd"><br>
性别:<input type="radio" name="usersex">男<input type="radio" name="usersex">女<br>
年龄:<input type="number" name="userage"><br>
出生日期:<input type="date" name="userbirth"><br>
爱好:<input type="checkbox" name="userhob" value="篮球">篮球、
<input type="checkbox" name="userhob" value="游泳">游泳、
<input type="checkbox" name="userhob" value="排球">排球<br>
<input type="submit" value="提交"><br>
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: Nancy
Date: 2020/6/12
Time: 10:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>show</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String userpwd = request.getParameter("userpwd");
String usersex = request.getParameter("usersex");
String userage = request.getParameter("userage");
String userbirth = request.getParameter("userbirth");
String hobbies[]=request.getParameterValues("userhob");
%>
注册信息如下:<br>
姓名:<%=name%>
密码:<%=userpwd%>
性别:<%=usersex%>
年龄:<%=userage%>
出生日期:<%=userbirth%>
爱好:
<%
if(hobbies!=null){
for(String hobby:hobbies){
out.print(hobby);
}
}
%>
</body>
</html>
response对象
response 响应对象
response 对象提供的常见方法:
void addCookie(Cookie cookie):服务端向客户端增加cookie对象
void sendRedirect(String location):throw IOException页面跳转的一种方法
void setContentype(String type):设置服务端响应的编码(设置服务端的content)
使用request实现注册
🌰使用request实现注册
login.jsp->check.jsp->success.jsp
<%--
Created by IntelliJ IDEA.
User: Nancy
Date: 2020/6/12
Time: 17:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="check.jsp" method="post">
用户名:<input type="text" name="username">
密码:<input type="password" name="userpwd">
<input type="submit" value="提交">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: Nancy
Date: 2020/6/12
Time: 17:09
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>check</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String pwd = request.getParameter("userpwd");
if(name.equals("zs") && pwd.equals("12345")){
//重定向,数据丢失
//response.sendRedirect("success.jsp");
//请求转发,可以获得数据
request.getRequestDispatcher("success.jsp").forward(request,response);
}else{
out.print("用户名或密码错误");
}
%>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: Nancy
Date: 2020/6/12
Time: 17:14
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>loginsuccess</title>
</head>
<body>
登录成功!<br>
欢迎!
<%= request.getParameter("username")%>
</body>
</html>
请求转发与重定向的区别