JSP笔记

JSP的一些笔记

1.输出对象

out.print("<h1>哈哈哈哈哈</h1>");

2.重定向

response.sendRedirect("./index2.jsp");

3.JSP常用内置对象

1.response(响应对象)

2.request(http请求对象)

3.Session(会话对象)

4.服务端页面接收表单传过来的参数

	//设置中文编码防止乱码
	request.setCharacterEncoding("utf-8");

	String acc=request.getParameter("account");
	String password=request.getParameter("password");
	String student=request.getParameter("student");
	String age=request.getParameter("age");

5.JDBC连接mysql

package com.hgy.jdbc;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.ResultSetMetaData;

import java.sql.Connection;


public class jdbctest {
	public static void main(String[] args) {
		
		//加载驱动
		String driverStr="com.mysql.jdbc.Driver";
		
		//数据库连接
		String dataBaseUrl="jdbc:mysql://localhost:3306/chat";
		
		//用户名
		String account="root";
		
		//密码
		String password="123456";
		
		//创建连接对象 需要异常处理
		try {
			Connection connection=DriverManager.getConnection(dataBaseUrl, account, password);
			//创建命令对象
			PreparedStatement pStatement=connection.prepareStatement("select * from book");
			//执行命令集合 获取sql语句执行结果
			ResultSet rSet=pStatement.executeQuery();
			
			//获取字段列数
			ResultSetMetaData rMetaData=rSet.getMetaData();
			int ColumnNumber=rMetaData.getColumnCount();
			
			//打印结果 next()方法获取 下一个结果 如果为末尾返回false
			while(rSet.next()){
				for(int i=1;i<=ColumnNumber;i++){
					//将每列打印出来
					System.out.print(rSet.getString(i)+" ");
				}
				System.out.println();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

6.servlet的基本使用

6.1新建一个servlet文件

package com.hgy.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.hgy.entity.Book;

/**
 * Servlet implementation class select
 */
@WebServlet("/select")  //这个应该是监听的路径
public class select extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public select() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
		
		List<Book> books =new ArrayList<Book>();
		books.add(new Book(104, "三体", 95, "中国人民出版社"));
		books.add(new Book(105, "上海堡垒", 50, "中国人民出版社"));
		books.add(new Book(106, "龙族",60, "中国人民出版社"));
		books.add(new Book(107, "神印王座", 66, "中国人民出版社"));
		
		//利用会话保存员工记录
		HttpSession session=request.getSession();
		session.setAttribute("Books", books);
		
		//跳转指定的jsp
		response.sendRedirect("Book_servlet.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

6.2重定向跳转后的页面Book_servlet.jsp

<%@page import="com.hgy.entity.Book"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//获取信息 打印
	List<Book> books=(List<Book>) session.getAttribute("Books");
	for(Book bs:books){
		%>
		<div><%=bs.getTitle() %></div>
		<% 
	}
%>
</body>
</html>

6.3调用上面创建的servlet

<a href="select">跳转到servlet</a>

7.servlet和jdbc一起使用

7.1 封装好的JDBC类,直接调用方法

package com.hgy.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/*
 * 这是jdbc封装好的文件
 */
public class jdbc {
	private static Connection con;
	private static PreparedStatement ps;
	private static ResultSet rs;
	
	static{
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/chat","root","123456");
		} 
		catch (Exception e) {
			// TODO: handle exception
		}
	}
	
	//增删改 
	public static void update(String sql){
		try {
			ps = con.prepareStatement(sql);
			ps.executeUpdate();
		} 
		catch (Exception e) {
			// TODO: handle exception
		}
		
	}
	
	//查询
	public static ResultSet query(String sql){
		try {
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
		} 
		catch (Exception e) {
			// TODO: handle exception
		}
		return rs;
	}
	
}

7.2 servlet文件

package com.hgy.servlet;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.hgy.entity.Book;
import com.hgy.jdbc.jdbc;

/**
 * Servlet implementation class jdbcSelect
 */
@WebServlet("/jdbcSelect")
public class jdbcSelect extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public jdbcSelect() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
		
		try{
			//新建一个list容器
			List<Book> books =new ArrayList<Book>();
			//创建一个SQL语句
			String sql = "select * from book";
            //调用封装好的JDBC类中的方法
			ResultSet rs=jdbc.query(sql);
            
			//获取字段列数
			ResultSetMetaData rMetaData=rs.getMetaData();
			int ColumnNumber=rMetaData.getColumnCount();
			
			while(rs.next()){
                //将获取到的数据库表内容加入到Book对象中
				Book book = new Book(rs.getInt(1), rs.getString(2),rs.getInt(3),rs.getString(4));
                //把book对象加入books容器
				books.add(book);
				
				
//					for(int i=1;i<=ColumnNumber;i++){
//						//将每列打印出来
//						System.out.print(rs.getString(i)+" ");
//					}
//					System.out.println();
			}
			//利用会话保存员工记录
			HttpSession session=request.getSession();
			session.setAttribute("Books2", books);
			
			//跳转指定的jsp
			response.sendRedirect("Book_servlet2.jsp");
		}catch (Exception e) {
			System.out.println(e.getMessage());
		}
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

7.3 跳转后的jsp页面

<%@page import="com.hgy.entity.Book"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>连接mysql和servlet</title>
<style>
	table{
		width:500px;
		height:40px;
		border-collapse:collapse;	
		background-image:linear-gradient(to right,orange,yellow);
	}
	table td{
		border:1px solid black;
	}
</style>
</head>
<body>

<table>
<% 
    //创建一个list容器接收内容   按属性获取会话内容
	List<Book> books2=(List<Book>) session.getAttribute("Books2");
	for(Book bs:books2){
		%>
		
		<tr>
		<td><%=bs.getId() %></td>
		<td><%=bs.getTitle() %></td>
		<td><%=bs.getPrice() %></td>
		<td><%=bs.getPublisher() %></td>
		</tr>
		
		<% 
	}
%>

</table>
</body>
</html>

8.servlet和jdbc执行删除数据操作

jdbc用上面封装好的

8.1 servlet文件,执行删除SQL语句

package com.hgy.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hgy.jdbc.jdbc;

/**
 * Servlet implementation class jdbcdelete
 */
@WebServlet("/jdbcdelete")
public class jdbcdelete extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  
    public jdbcdelete() {
        super();
       
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		
		//获取传递过来的员工编号
				String id = request.getParameter("id");
				
				//执行删除命令
				String sql = "delete from book where id="+id;
				jdbc.update(sql);
				
				//跳转 查询操作的servlet以更新数据
				response.sendRedirect("jdbcSelect");
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

8.3 jsp页面 点击删除后跳转到执行删除操作的servlet文件

<table>
<% 
	List<Book> books2=(List<Book>) session.getAttribute("Books2");
	for(Book bs:books2){
		%>
		
		<tr>
		<td><%=bs.getId() %></td>
		<td><%=bs.getTitle() %></td>
		<td><%=bs.getPrice() %></td>
		<td><%=bs.getPublisher() %></td>
		<td><a onclick="return confirm('是否确认删除')" href="jdbcdelete?id=<%=bs.getId() %>">删除</a></td>
		</tr>
		
		<% 
	}
%>

</table>

9. servlet和jdbc 执行插入数据操作

jdbc用上面封装好的

9.1 servlet页面 接收jsp页面传过来的表单值

package com.hgy.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hgy.jdbc.jdbc;

/**
 * Servlet implementation class jdbcInsert
 */
@WebServlet("/jdbcInsert")
public class jdbcInsert extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  
    public jdbcInsert() {
        super();
        // TODO Auto-generated constructor stub
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		
		request.setCharacterEncoding("utf-8");
		String id=request.getParameter("id");
		String bookName=request.getParameter("bookName");
		String price=request.getParameter("price");
		String publisher=request.getParameter("publisher");
		System.out.println(id+bookName+price+publisher);
		//执行插入命令 注意字符串拼接
		String sql="insert into book(id,bookname,price,publisher) values("+id+","+"'"+bookName+"'"+","+price+","+"'"+publisher+"'"+")";
		//System.out.println(sql);
		jdbc.update(sql);
		//跳转查询操作
		response.sendRedirect("jdbcSelect");	
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
		
	}

}

9.2 jsp页面

<form action="jdbcInsert" method="post">
	ID<input type="text" name="id">
	书名<input type="text" name="bookName">
	价格<input type="text" name="price">
	出版社<input type="text" name="publisher">
	<input type="submit">
</form>

10.servlet和jdbc执行指定查询操作

jdbc用7.1中封装好的文件

10.1 jsp页面

<h1>查询出版社</h1>
<form action="jdbcSelect2" method="post">
	出版社<input type="text" name="publisher">
	<input type="submit">
</form>

<!-- 数据打印 -->
<table>
 <% 
	List<Book2> books2=(List<Book2>) session.getAttribute("Book3");
	for(Book2 bs:books2){
		%>
		
		<tr>
		<td><%=bs.getId() %></td>
		<td><%=bs.getTitle() %></td>
		<td><%=bs.getPrice() %></td>
		<td><%=bs.getPublisher() %></td>
		<td><%=bs.getTid() %></td>
		<td><%=bs.getTypeName() %></td>
		
		</tr>
		
		<% 
	}
%> 
</table>

10.2 servlet文件

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
					
		request.setCharacterEncoding("utf-8");
    	//获取表单提交的值
		String publisher=request.getParameter("publisher");
	
		try{
            //创建一个list容器
			List<Book2> books2=new ArrayList<Book2>(); 
			String sql="SELECT b.*,t.name FROM book2 b,booktype t WHERE b.tid=t.id and b.publisher like '%"+publisher+"%'";
			ResultSet rSet=jdbc.query(sql);
			//获取字段列数
			ResultSetMetaData rMetaData=rSet.getMetaData();
			int ColumnNumber=rMetaData.getColumnCount();
			
			while(rSet.next()){
				Book2 Book2=new Book2(rSet.getInt(1), rSet.getString(2), rSet.getInt(3),rSet.getString(4),rSet.getInt(5), rSet.getString(6));
				books2.add(Book2);
				
                //控制台打印数据库内容
				for(int i=1;i<=ColumnNumber;i++){
					//将每列打印出来
					System.out.print(rSet.getString(i)+" ");
				}
				System.out.println();
			}
			//将list容器添加到session会话中
			HttpSession session=request.getSession();
			session.setAttribute("Book3", books2);
			//跳转
			response.sendRedirect("Book_servlet3.jsp");  //这里的是10.1提交表单的jsp文件
		}catch (Exception e) {
			System.out.println(e.getMessage());
			System.out.println("aaa");
		}
		
	}

10.3 用到的数据库SQL语句

create table book
(
	`id` int AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(50),
	`price` INT,
	`publisher` VARCHAR(50),
	`tid` int
) default character set = 'utf8';

create table BookType
(
	`id` int AUTO_INCREMENT PRIMARY KEY,
	`name` varchar(50)
) default character set = 'utf8';

insert into booktype values(null,'小说');
insert into booktype values(null,'教材');
insert into booktype values(null,'散文');

insert into book values(null,'三国演义',200,'清华大学出版社',1);
insert into book values(null,'水浒传',280,'武汉大学出版社',1);
insert into book values(null,'红楼梦',250,'武汉大学出版社',1);
insert into book values(null,'西游记',300,'清华大学出版社',1);
insert into book values(null,'C#面向对象程序设计',100,'清华大学出版社',2);
insert into book values(null,'C语言程序设计',100,'清华大学出版社',2);
insert into book values(null,'SQLServer数据库',100,'清华大学出版社',2);
insert into book values(null,'静态网页设计',100,'北京大学出版社',2);
insert into book values(null,'Java高级编程',100,'北京大学出版社',2);
insert into book values(null,'落花生',200,'北京大学出版社',3);
insert into book values(null,'小橘灯',300,'清华大学出版社',3);
insert into book values(null,'我喜欢出发',100,'武汉大学出版社',3);
insert into book values(null,'热爱生命',150,'北京大学出版社',3);
insert into book values(null,'剪不断的情愫',180,'清华大学出版社',3);
insert into book values(null,'嫁给幸福',200,'北京大学出版社',3);
insert into book values(null,'围城',160,'清华大学出版社',1);
insert into book values(null,'封神演义',300,'北京大学出版社',1);
insert into book values(null,'官场现形记',260,'武汉大学出版社',1);
insert into book values(null,'陌上花开',220,'北京大学出版社',3);
insert into book values(null,'高等数学',190,'武汉大学出版社',2);
insert into book values(null,'大学语文',120,'清华大学出版社',2);
insert into book values(null,'流浪地球',100,'北京大学出版社',1);
insert into book values(null,'亮剑',170,'武汉大学出版社',1);

引入jstl标签

1.放入jstl-1.2.jar包

WebContent->WEB-INF->lib文件夹下,右键jar文件 Build Path

2.头部引入<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

Eclipse的一些设置

1.设置全局提示

上方工具栏Window->Preferences->Java->Editor->Content Assist

在右边区域下方的 Auto activation triggers for Java: 的.后面加入26个字母 然后应用保存

2.设置JSP默认编码

上方工具栏Window->Preferences

右上角搜索JSP

然后点击Web目录下的JSP Files选项

右侧的Encoding中即可设置默认编码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值