重点:掌握小脚本
掌握表达式
JSP (Java Server Pages)是指
· 在HTML中嵌入Java脚本代码
·由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码
·然后将生成的整个页面信息返回给客户端
注意:新建jsp的时候jsp一般存放在webRoot目录下,千万不要放在WEB-INF下边,不然页面无法访问(用户无法直接访问WEB-INF下的资源)
常见的页面访问错误
404 路径url 错误
500 页面代码有错
Jsp执行
Jsp—>翻译成java文件(servlet)à编译成class文件 然后运行
JSP注释
小脚本内可以使用 //单行注释 /*注释内容 */
html中可使用 在浏览器访问时会在源代码中显示
<%--jsp注释--%> 在浏览器访问时会在源代码中不显示
小脚本
用来在jsp中插入java代码(同一页面中小脚本中变量名不能重复)
格式:<%【java代码】 %>
eg:<% String s="hello world"; %>
注:小脚本中不能声明方法 ,其中代码会原封不动的放到Servlet的 _jspSerivce方法中
Eg:输出一个10行4列的表格
<% for(int i=0;i<10;i++){ %> <% } %>
表达式 (在html中输出java中的值)
格式: <%=【java 表达式】 %>
eg:<%=new java.util.Date() %>
注:小脚本后边不能有分号(;) 表达式中最后会翻译成out.print(...)
<% String s="hello world"; %>
<%=s %>
<%
out.print(s); //在页面输出
system.out.print(s); //在控制台输出
%>
Eg:99乘法表
<%
for(int i=1;i<=9;i++){
out.print(" for(int j=1;j<=i;j++){ %> } out.print("");
");<%=i+"*"+j+"="+i*j %> <%
}
%>
声明
格式:<%!【JAVA代码】%>
声明中的代码会放在翻译后的Servlet类中(声明中可以写静态代码块,成员变量和方法)
<%!
int b=10;
public void a(){ system.out.print("aaa");
%>
使用小脚本和表达式链接数据库输出emp表的数据
1、 在项目中配置oracle的驱动jar包
把jar包拷贝到项目中的lib文件夹下
然后把jar包部署在项目上边
2、 创建数据库工具类(提供数据库的链接、关闭链接、查询、更新的方法)DBOperation
3、 对emp表进行封装
新建Emp类
public class Emp {
private int empno;
private String ename;
private String job;
private int mgr;
private Date hiredate;
private int sal;
private int comm;
private int deptno;
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
public int getComm() {
return comm;
}
public void setComm(int comm) {
this.comm = comm;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
}
4、 新建EmpDao对emp表进行数据库操作
public class EmpDao extends DbOperation{
//查询emp表数据
public ArrayList select(){
//集合对象用于保存查询到的数据
ArrayList al=new ArrayList();
//链接数据库
getConn();
//sql语句
String sql="select * from emp";
//执行查询
extQuery(sql);
//处理结果集
try {
while(rs.next()){
Emp e=new Emp();
e.setEmpno(rs.getInt("empno"));
e.setEname(rs.getString("ename"));
e.setJob(rs.getString("job"));
e.setMgr(rs.getInt("mgr"));
e.setComm(rs.getInt("comm"));
e.setSal(rs.getInt("sal"));
e.setDeptno(rs.getInt("deptno"));
e.setHiredate(rs.getDate("hiredate"));
al.add(e);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//关闭链接
closeAll();
return al;
}
}
5、 新建jsp来显示查询出的数据
<%@page import="myjsp.vo.Emp"%>
<%@page import="myjsp.dao.EmpDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//获得emp表数据
EmpDao ed=new EmpDao();
ArrayList al=ed.select();
%>
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'emp.jsp' starting pagetitle>
head>
<body>
<table>
<tr>
<td>员工编号td><td>员工姓名td>
<td>职位td><td>上级编号td>
<td>入职日期td><td>薪资td>
<td>奖金td><td>部门编号td>
tr>
<%for(int i=0;i
Emp e=(Emp)al.get(i);
out.print(" out.print(" out.print(" out.print(" out.print(" out.print(" out.print(" out.print(" out.print(" out.print("");
");"+e.getEmpno()+" ");
"+e.getEname()+" ");
"+e.getJob()+" ");
"+e.getMgr()+" ");
"+e.getHiredate()+" ");
"+e.getSal()+" ");
"+e.getComm()+" ");
"+e.getDeptno()+" ");
}%>
table>
body>
html>