jsp基本语法
一:什么是jsp
jsp全名为 Java Server Pages
中文名叫 java服务器页面
它是在传统的网页HTML文件(*.html,*.htm)中插入Java程序段和jsp标记;标签通常以<%开头以%>结束。
后缀名为(*.jsp)
其根本是一个简化的Servlet设计
二:为什么要有jsp
直接使用html文件是没有办法输出java当中的信息
使用servlet来去输出一个网页非常的麻烦
于是就出现了jsp,又能写html,又能写java代码
jsp工作原理
三:jsp的组成
指令
概述
jsp指令用于设置整个jsp页面的相关信息以及用于jsp页面与其它容器之间的通信
三大指令
page指令
用于设定整个jsp页面的属性和相关功能
常用属性
contentType
contentType属性指定jsp页面的mime和编码格式
pageEcoding
pageEncoding属性用来指定jsp文件的编码格式
import
在jsp中引入java的包和类,多个包之间以逗号隔开
include指令
将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句
taglib指令
使用标签库定义新的自定义标签,在jsp页面中启用定制行为
注释
格式:<%-- jsp语法注释 --%> 客户端查看源码式看不到该注释
脚本
格式:<% %>
作用:可以在代码块中编写java代码
声明
格式:<%! %>
作用:在这个结构中,可以定义变量,也可以定义方法
表达式
格式:<%= %>
作用:用来变现数据,访问当前作用于数据或方法调用
静态内容
html代码
演示:
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获取当前日期</title>
</head>
<body>
当前日期为:
<%
SimpleDateFormat dd = new SimpleDateFormat("yyyy年MM月dd日");
String dateTime = dd.format(new Date());
%>
<%=dateTime%>
</body>
</html>
表单提交方式
form提交
get
以明文的方式通过url提交数据,数据在url中可以看到 提交的数据最多不超过2KB
安全性较低但是效率比post方式高 适合提交数据量不大 安全性不高的数据 比如:搜索 查询等功能
post
将用户提交的信息封装在html header内 适合提交数据量大,安全性高的用户信息 比如 注册 修改 上传等功能
演示:
<form name="form1" method="post" action="reginfo.jsp">
<table border="0" align="center">
<tr>
<td>用户名</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>你从哪里知道卓京</td>
<td><input type="checkbox" name="channel" value="报刊">报刊
<input type="checkbox" name="channel" value="网络">网络 <input
type="checkbox" name="channel" value="朋友推荐"> 朋友推荐 <input
type="checkbox" name="channel" value="电视"> 电视</td>
</tr>
</table>
</form>
jsp内置对象
内置对象:在jsp中不需要定义,就可以直接使用的对象,这些对象是jsp转换成serlvet时,直接自动追加变量的定义
out
类型:JspWriter 作用:想浏览器输出内容
print/println 输出打印到页面
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对应的多个参数
response
类型:HttpServletResponse 作用:封装响应信息的对象
session
类型:HttpSession 作用:封装个会话信息对象
application
类型:ServletContext 作用:封装servlet上下文对象(针对整个工程的全局对象)
pageContext
类型:PageContext 作用:当前页面域,是用来管理其它内置对象的
page
类型:Object 作用:页面本身
config
类型:ServletConfig 作用:针对当前页面生成servlet
exception
类型:Throwable 作用:封装异常信息(这个对象只会出现在errorPage中)
演示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>時間點擊事件</title>
<style type="text/css">
button {
color: pink
}
</style>
<script type="text/javascript">
function dianji() {
window.setInterval(function dianji() {
var odiv = document.getElementById("odiv");
var date = new Date();
var hour = date.getHours();
var minues = date.getMinutes();
var second = date.getSeconds();
odiv.innerHTML = "时间为:" + hour + ":" + minues + ":" + second;
}, 1000)
}
</script>
</head>
<body>
<div id="odiv">
<button onclick="dianji()">点击一下</button>
</div>
</body>
</html>
思维导图小结