JSP的初步使用

6 篇文章 0 订阅

一、JSP概述

JSP (Java Server Pages):在HTML中嵌入Java脚本代码,由于JSP将Java代码作为脚本融入到了HTML中,因此可以在HTML标签之间写Java代码,完成一些页面的动态效果。

1、JSP的执行原理

将Java脚本嵌入到JSP页面,应用服务器执行JSP,进而与数据库服务器交互,然后返回页面信息给客户端。
在这里插入图片描述
Web容器处理JSP文件请求需要经过的3个阶段:

  1. 翻译阶段
  2. 编译阶段
  3. 执行阶段
    在这里插入图片描述

二、JSP的page命令

通过设置内部的多个属性定义整个页面的属性

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

语法:

<%@ page 属性1=“值1” 属性2=“值2” 属性N="值N" %>

常用属性:

属性描述默认值
language指定JSP页面使用的脚本语言java
import通过该属性来引用脚本语言中使用到的类文件
contentType用来指定JSP页面所采用的编码方式text/html,ISO-8859-1

三、JSP页面元素

  • 静态内容:用于展示网页的静态内容
    格式:HTML静态文本
	<div>
		<marquee>Hello,JSP!!</marquee>
	</div>
  • 指令:用于将相关功能给导入到JSP页面中,例如导包,设置字符编码等
    格式:<%@ 内容 %>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
  • 小脚本:用于将Java代码嵌入到HTML页面中
    格式:<% Java代码 %>
	<div>
		今天是:
		<%
		// 小脚本方式 编写Java代码 短小简
		// java代码
		Date date = new Date();
		// 格式化
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
	%>
	</div>
  • 表达式:用于输出内容到页面
    格式:<%=Java表达式%>
		<!-- 输出内容 -->
		<h1><%=df.format(date)%></h1>
  • 声明:用于定义方法
    格式:<%! 方法 %>
	<div>
		<!-- 指定输出某个信息 -->
		<%!
			// 定义一个java函数
			Date formatStringToDate(String date) throws Exception {
				Date result = null;
				DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
				result = df.parse(date);
				return result;
			}
		%>
		<h1><%=formatStringToDate("2000-01-01") %></h1>
	</div>
  • 注释:用于给代码做解释
    格式:<!-- 注释内容:客户端可以看见 -->
    格式:<%-- 注释内容:客户端无法看见 -->
	<!-- HTML注释	在浏览器查看源码能显示 -->
	<%-- JSP注释		在浏览器查看源码不能显示 --%>

四、使用JSP技术连接mysql对人员信息表的展示

  1. 创建JavaBean
    在src下创建包,并创建Person类
package com.gaj.entity;

import java.io.Serializable;

/**
 * 人员信息实体类
 * JavaBean 实现了Serializable 串行化
 * 有默认构造和get/set方法
 * @author Jan
 *
 */
public class Person implements Serializable {
	/**
	 * 序列化版本号
	 */
	private static final long serialVersionUID = 8683321320857796803L;
	private Integer pid;	// 主键
	private String pname;	// 姓名
	private String sex;		// 性别
	private Integer age;	// 年龄
	private String from;	// 籍贯
	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getFrom() {
		return from;
	}
	public void setFrom(String from) {
		this.from = from;
	}
	@Override
	public String toString() {
		return "Person [pid=" + pid + ", pname=" + pname + ", sex=" + sex + ", age=" + age + ", from=" + from + "]";
	}
}

  1. 导入相关包到项目的/WebContent/WEB-INF/lib下
    数据库驱动类:mysql-connector-java-5.1.6.jar
    druid连接池:druid-1.1.9.jar
    DButils工具类:commons-dbutils-1.6.jar
  2. 编写连接数据的工具类
package com.gaj.utils;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSource;

/**
 * 数据库连接工具类
 * @author Jan
 *
 */
public class JDBCUtil {

	// 四大连接属性
	private static final String CONN_DRIVER = "com.mysql.jdbc.Driver";
	private static final String CONN_URL = "jdbc:mysql://127.0.0.1:3306/jdbcdb?characterEncoding=utf8";
	private static final String CONN_USER = "root";
	private static final String CONN_PASS = "root";
	
	// 创建Druid数据源
	private static DruidDataSource dataSource = new DruidDataSource();
	
	// 赋值
	static{
		dataSource.setDriverClassName(CONN_DRIVER);
		dataSource.setUrl(CONN_URL);
		dataSource.setUsername(CONN_USER);
		dataSource.setPassword(CONN_PASS);
	}
	
	// 返回数据源对象
	public static DataSource getDataSource(){
		return dataSource;
	}
}

  1. JSP页面完成展示
    Java代码在小脚本中编写
    Java的值用表达式输出到页面
    HTML代码在JSP文件中直接编写
<%@page import="java.util.List"%>
<%@page import="com.gaj.entity.Person"%>
<%@page import="org.apache.commons.dbutils.handlers.BeanListHandler"%>
<%@page import="org.apache.commons.dbutils.QueryRunner"%>
<%@page import="com.gaj.utils.JDBCUtil"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>人员信息数据展示</title>
</head>
<body>
	<%
		// 查看全部数据
		// 1.创建sql执行对象
		QueryRunner qr = new QueryRunner(JDBCUtil.getDataSource());
		// 2.编写sql语句
		String sql = "select id pid, name pname, sex, age, `from` from person;";
		// 3.执行sql语句
		List<Person> list = qr.query(sql, new BeanListHandler<Person>(Person.class));
	%>
	<table border="1">
		<tr style="color: gray;">
			<th>编号</th>
			<th>姓名</th>
			<th>性别</th>
			<th>年龄</th>
			<th>籍贯</th>
		</tr>
		<%
			for(Person person : list){
				%>
				<tr >
					<td style="color:pink;"><%=person.getPid() %></td>
					<td style="color:blue;"><%=person.getPname() %></td>
					<td style="color:orange;"><%=person.getSex() %></td>
					<td style="color:aqua;"><%=person.getAge() %></td>
					<td style="color:fuchsia;"><%=person.getFrom() %></td>
				</tr>
				<%
			}
		%>
	</table>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值