JSP全称Java Server Pages,中文名为Java服务器页面,是一种动态网页开发技术。它是在HTML中插入Java程序段(<%java程序段%>)和JSP标记,从而形成JSP文件,后缀名为(*.jsp)。它实质上是一个简化的Servlet。
JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
在网页上输出100句"Hello,man.Come on!!!"
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>jsp</title> <style> h1 { color:peachpuff; text-align:center; } </style> </head> <body> <% for (int i = 0; i <100 ; i++) { %> <h1>Hello,man.Come on!!!</h1> <% } %> </body> </html>运行结果:
<%@ page … %>为容器提供当前页面的使用说明。常用属性:
contentType:页面文本类型 “text/html”errorPage:jsp页面出现错误时,就跳转至指定的页面import:导入要使用的Java类language:定义JSP页面所用的脚本语言,默认是JavaautoFlush:自动刷新 (true,false:默认)<%@ include … %>导入其他页面包含到本页
<%@ taglib … %>引入标签库的定义
执行结果:
出现500异常时:
出现404异常时:
具体代码如下:
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> <style> h1{ color: darksalmon; text-align: center; } </style> </head> <body> <%@include file="common/header.jsp"%> <h1>我是该网页的中心内容</h1> <% int [] num = {1,2,3}; for (int i = 0; i < 3; i++) { %> <h1> num=<%=num[i]%> </h1> <% } %> <%@include file="common/footer.jsp"%> </body> </html>header.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <style> h3{ color: cornflowerblue; } </style> <div> <h3>首++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</h3> </div>footer.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <style> h3{ color: cornflowerblue; } </style> <div> <h3>=============================================================================================================================尾</h3> </div>404.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>404</title> <style> h1{ color: crimson; } </style> </head> <body> <h1>见到我404可不是什么好消息</h1><br> <h1>你的路径估计出错了哦...</h1> </body> </html>500.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <style> h1{ color: crimson; } </style> </head> <body> <h1>见到我500可不是什么好玩的</h1><br> <h1>你的代码可能出错了哦...</h1><br> <h1>愣着干嘛!还不快去改代码!!!</h1><br> </body> </html>web.xml
<error-page> <error-code>404</error-code> <location>/error/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error/500.jsp</location> </error-page>jsp:include:用于在当前页面中包含静态或动态资源
jsp:include 和 @include 区别 @include 静态包含 : 他会把包含进来的页面和自己的页面融合成为一个servlet jsp:include 动态包含 :他不会把包含进来的页面和自己的页面融合成为一个servlet 【推荐使用,容错率更高】
jsp:useBean:
id:实例化对象的名称,对象名
class:要实例化的类
scope:对象的作用域,默认是page,千万不要放在application中;
<jsp:useBean id=“Student” class=“priv.sehun.jsp.Student” scope=“page”/>
jsp:forward:从一个JSP文件向另一个文件传递一个包含用户请求的request对象
例:
Student实体类
package priv.sehun.pojo; public class Student { //封装:属性私有,不让用户瞎操作,因而我们设置操作属性的公开方法,然后我们在公开的方法中设置安全性代码 private String namr; private int age; private int id; private boolean isGraduate; public Student() { } public Student(String namr, int age, int id, boolean isGraduate) { this.namr = namr; this.age = age; this.id = id; this.isGraduate = isGraduate; } public String getNamr() { return namr; } public void setNamr(String namr) { this.namr = namr; } public int getAge() { if(age<=0||age>150){ age = 0; return age; } return age; } public void setAge(int age) { this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public boolean isGraduate() { return isGraduate; } public void setGraduate(boolean graduate) { isGraduate = graduate; } }pojo.jsp
<%@ page import="priv.sehun.pojo.Student" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--普通方法new Student <% Student student = new Student(); %> --%> <%--jsp-usebean标签new Student--%> <jsp:useBean id="student" class="priv.sehun.pojo.Student" scope="page"/> <%--普通方法赋值--%> <% student.setAge(999); student.setId(700); student.setGraduate(false); %> <%--jsp标签赋值--%> <jsp:setProperty name="student" property="namr" value="ss"/> <hr> <%--EL表达式取值--%> age:${student.age}<br> name:${student.namr}<br> <%--普通方法取值--%> id:<%=student.getId()%><br> <%--JSP标签取值--%> isGraduate:<jsp:getProperty name="student" property="graduate"/> </body> </html>运行结果: