javaweb学习笔记(2)页面元素、请求转发和重定向、使用request对象实现注册、使用response对象实现登录

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>

请求转发与重定向的区别

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值