JavaWeb快速入门之jsp基本语法&表单提交方式&request对象【02】

一、jsp简介
   (1) 什么是jsp
        ① jsp全名为 Java Server Pages
        ② 中文名叫 java服务器页面
        ③ 它是在传统的网页HTML文件(*.html,*.htm)中插入Java程序段和jsp标记;标签通常以<%开头以%>结束
        ④  后缀名为(*.jsp)
        ⑤  其根本是一个简化的Servlet设计
    (2)为什么要有jsp
        直接使用html文件是没有办法输出java当中的信息,使用servlet来去输出一个网页非常的麻烦,于是就出现了jsp,又能写html,又能写java代码
    (3) jsp的工作原理
        jsp工作原理示意图

 
    (4)jsp的组成
       ①  指令
            1.1 概述
                jsp指令用于设置整个jsp页面的相关信息以及用于jsp页面与其它容器之间的通信
            1.2 三大指令
                  1.2.1 page指令
                      ① 用于设定整个jsp页面的属性和相关功能
                      ②  常用属性
                          contentType
                            contentType属性指定jsp页面的mime和编码格式
                          pageEcoding
                            pageEncoding属性用来指定jsp文件的编码格式
                          import
                            在jsp中引入java的包和类,多个包之间以逗号隔开
                  1.2.2   include指令
                           将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句
                  1.2.3 taglib指令
                           使用标签库定义新的自定义标签,在jsp页面中启用定制行为

        ② 注释
            格式:<%-- jsp语法注释 --%>

            作用: 客户端查看源码式看不到该注释  

     
        ③ 脚本
            格式:<%        %>
            作用:可以在代码块中编写java代码


        ④ 声明
            格式:<%!         %>
            作用:在这个结构中,可以定义变量,也可以定义方法


        ⑤ 表达式
            格式:<%=             %>
            作用:用来变现数据,访问当前作用于数据或方法调用


        ⑥ 静态内容
            html代码

<%@page import="java.util.Random"%>
<%@page import="java.util.Scanner"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	 <!-- js -->
	 <script type="text/javascript">
	 	//js的单行注释
	 	/*
	 		js的多行注释
	 	*/
	 </script>
	 <%--
	 	jsp脚本代码
	 	int a = 10;
	 --%>
	 
	 <%
	 	Scanner sc = new Scanner(System.in);
	 	Random rd = new Random();
	 %>
	 <%
	 	int a = 10;
	 	out.println(a);
	 
	 %>
	 
	 
	 <!-- jsp的声明 -->
	 <%!
	 	int b = 20;
	 
		public int add(int a,int b){
	 		return a+b;
	 	}
	 
	 %>
	 <%
	 	out.println(b);
	 	out.println(add(1,2));
	 %>
	 <hr/>
	 b的结果为<%=b %>
	 
 
</body>
</html>
<%@page import="java.text.*"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
	<body>
		你好,今天是
		<%
			SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日");
			String strCurrentTime = formater.format(new Date());
		%>
		<%=strCurrentTime %>
	</body>
</html>

二、jsp之表单提交方式
    form提交

        ① get
            以明文的方式通过url提交数据,数据在url中可以看到 提交的数据最多不超过2KB
安全性较低但是效率比post方式高 适合提交数据量不大 安全性不高的数据  比如:搜索 查询等功能
        ②  post
            将用户提交的信息封装在html header内  适合提交数据量大,安全性高的用户信息  比如  注册  修改  上传等功能

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}

			span {
				font-size: 10px;
				background-color: red;
			}
		</style>
		<script type="text/javascript">
			function $(id) {
				return document.getElementById(id);
			}

			function myuser() {
				var user = $("user").value;
				var regex = /^\d{6,12}$/;
				if (!regex.test(user)) {
					$("a1").innerHTML = "用户账号在6-12位数之间";
					return false;
				}
				return true;
			}

			function mypwd() {
				var pwd = $("pwd").value;
				var regex = /^\d{8}$/;
				if (!regex.test(pwd)) {
					$("a2").innerHTML = "密码必须为8位";
					return false;
				}
				return true;
			}

			function mycheck() {
				var myuser = myuser();
				var mypwd = mypwd();
				if (!myuser && !mypwd) {
					return false;
				}
				return true;
			}
		</script>
	</head>
	<body>
		<div id="aa">
			<form action="succes.jsp" method="post" onsubmit="return mycheck()">
				<table>
					<tr>
						<td>用户名:</td>
						<td><input type="text" id="user" onblur="myuser()" /><span id="a1"></span></td>
					</tr>
					<tr>
						<td>密码:</td>
						<td><input type="password" id="pwd" onblur="mypwd()" /><span id="a2"></span></td>
					</tr>
					<tr>
						<td colspan="2">
							<input type="submit" value="登录">
						</td>
					</tr>
				</table>
			</form>
		</div>
	</body>
</html>

三、 jsp内置对象
    内置对象:在jsp中不需要定义,就可以直接使用的对象,这些对象是jsp转换成serlvet时,直接自动追加变量的定义
    (1) out
        类型:JspWriter    

        作用:想浏览器输出内容
               print/println 输出打印到页面


    (2)request
        类型:HttpServletRequest  

        作用:封装请求信息的对象


            getMethod  获取请求方式,get/post


            getRequestURI  获取url中协议后,问号前部分的内容


            getRequestURL  获取url中问号前部分的内容


            getServletPath  获取url中项目名后,问号之前部分的内容


            getQueryString  获取请求路径问号后部分的内容


            getContextPath  获取项目名


            setAttribute   设置属性


            getAttribute  获取属性值


            removeAttribute  移除属性值


            getLocalAddr  获取服务器的地址


            getCookies  获取当前请求对应的所有cookie


            getSession(boolean b)  获取会话


            getRequestedSessionId  获取请求对象的jsessioId


            getServletContext  获取ServletContext对象


            getServerPort  获取服务器的端口号


            getRemoteHost  获取主机名,获取失败是,改为获取IP


            getRequestDispatcher  获取转发器对象


            getParameter  获取请求参数


            getParameterValues  获取一个key对应的多个参数

 <%
	 	/* 获取表单提交的数据时,应当设置其编码格式,否则数据如果是中文在获取时会出现乱码 */
	 	request.setCharacterEncoding("utf-8");
	 
	 	//getParameter  获取请求参数  返回类型 String
	 	//实现通过request对象获取表单中输入的值。
	 	
	 	//1.获取账号
	 	String username = request.getParameter("username");
	 	out.println("表单输入的值为: "+username);
	 	//2.获取密码
	 	String password = request.getParameter("password");
	 	out.println("<br/>表单输入的值为: "+password);
	 
	 	
	 	//getParameterValues  获取一个key对应的多个参数
	 	//获取多个值   复选框可以选中多个值
	 	String[] hobbys = request.getParameterValues("hobby");
	 	out.println("<br/>您选择的爱好如下: ");
	 	if(hobbys!=null){
	 		for(String hb:hobbys){
		 		out.println(hb);
		 	}
	 	}else{
	 		out.println("没有选中爱好");
	 	}
	 	
	 	
	 %>


    (3)response
        类型:HttpServletResponse  

       作用:封装响应信息的对象


    (4)session
        类型:HttpSession

        作用:封装个会话信息对象


    (5)application
        类型:ServletContext  

        作用:封装servlet上下文对象(针对整个工程的全局对象)


    (6)pageContext
        类型:PageContext  

       作用:当前页面域,是用来管理其它内置对象的


    (7)page
        类型:Object  

       作用:页面本身


    (8)config
        类型:ServletConfig  

        作用:针对当前页面生成servlet


    (9)exception
        类型:Throwable  

       作用:封装异常信息(这个对象只会出现在errorPage中)

<%@ page language="java" contentType="text/html; charset=GBK" %>
<html>
	<head>
		<title>数值</title>
	</head>
	<body>
	<%
    	int[] value = { 60, 70, 80 };
    	for (int i = 0; i < value.length; i++) {
        	out.println(value[i]);
	%>
	</body>
</html>

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ning_ning_03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值