一、什么是Jsp
JSP全称Java Server Page,基于Java语言,是一种动态网页技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。JSP本质是简化版的Servlet,JSP在编译后就变成了Servlet。JVM只能识别Java的类,是无法识别JSP代码的。所以WEB服务器会将JSP编译成JVM能识别的Java类。JSP跟Servlet区别在于,JSP常用于动态页面显示,Servlet常用于逻辑控制。在代码中常使用JSP做前端动态页面,在接收到用户输入后交给对应的Servlet进行处理。当然JSP也可以当做后端代码进行逻辑控制。
二、Jsp基础
以下相关概念了解即可。后续可再根据自己兴趣拓展学习。
1、JSP文件后缀名为 *.jsp
2、JSP代码需要写在指定的标签之中,比如:
3、JSP生命周期: 编译阶段 -> 初始化阶段 -> 执行阶段 -> 销毁阶段 ,此处多了一个编译阶段,是将JSP编译成Servlet的阶段。而这个阶段也是有三个步骤的: 解析JSP文件 -> 将JSP文件转为servlet -> 编译servlet 。
4、JSP指令:是用来设置JSP整个页面属性的。格式为: <%@ directive attribute="value" %> 。JSP中的三种指令标签:
指令 | 描述 |
<%@ page ... %>
|
定义网页依赖属性,比如脚本语言、
error
页面、缓存需求等
|
<%@ include...%>
| 包含其他文件 |
<%@ taglib ... %>
|
引入标签库的定义
|
5、JSP的九大内置对象(隐式对象),这九个对象,可以不用声明直接使用。
名称 | 类型 | 描述 |
out | javax.servlet.jsp.JspWriter | 页面输出 |
request | javax.servlet.http.HttpServletRequest | 获取用户请求 |
response | javax.servlet.http.HttpServletResponse | 服务器向客户端的回应信息 |
config | javax.servlet.ServletConfig |
服务器配置,可以取得初始化参数
|
session | javax.servlet.http.HttpSession |
保存用户的信息
|
application | javax.servlet.ServletContext | 所有用户的共享信息 |
page | java.lang.Object |
指当前页面转换后的Servlet类的实例
|
pageContext | javax.servlet.jsp.PageContext | Jsp的页面容器 |
exception |
java.lang.Throwable
|
表示
JSP
页面所发生的异常,错误页中才起作用
|
三、Jsp程序运行
3.1创建Jsp项目
基于Maven创建Jsp项目。打开IDEA后,点击 Create New Project ,选择Mavan,勾选 Create from archetype ,选择的模板是 maven-archetype-webapp ,如下图所示:
然后点击Next,给项目起个名字,其他默认即可。
3.2代码Demo
写一个简易的登陆界面
首先引入一下依赖Jar包。点击左上角 File - Project Structure - Libraries ,点击 + 号,进入Tomcat的lib文件夹下,将依赖全部引入(对于我们这样最省事),最后点击apply。如下图所示:
在webapp下面创建两个JSP文件,分别为 login.jsp 和 do_login.jsp ,如下图所示:
在 login.jsp 键入以下代码,如下图所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登陆</title>
</head>
<body>
<hr><br>登陆界面<br>
<form action="do_login.jsp" method="get">
<br>
<h1>请输入你的信息:</h1><br>
Name:<input type="text" name="username"><br>
Pass:<input type="password" name="password"><br>
<br><br><br>
<input type="submit"> <input type="reset"><br>
</form>
</body>
</html>
通过在login.jsp中发送的请求参数,do_login.jsp处理该参数,do_login.jsp中代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8">
<title>Server to do the register page!</title>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
%>
<%
if (username.equals("admin")&&password.equals("password")){
response.getWriter().write("Success");
}else {
response.getWriter().write("error,username or password is wroing");
}
%>
</body>
</html>
下面运行看一下效果,访问http://localhost:8080/login.jsp