一、JSP-20190909
1.demo1.jsp
<%@page import=“java.util.ArrayList”%>
<%@ page language=“java” import=“demo.Student,java.util.HashMap” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<!-- EL表达式输出的变量必须存放在作用域中,通过键名称访问对应值 -->
<%
int a=100;
pageContext.setAttribute("key1", a);
%>
${key1}
<hr/>
<!-- EL表达式通过"."符号访问对象的属性,必须要求该对象提供规范的get方法. -->
<%
Student s=new Student(1,"Tom",20);
request.setAttribute("student", s);
%>
${student.id}<hr/>
<!-- EL表达式通过"[]"访问数组或者有序集合指定下标对应的元素内容 -->
<%
int num[]=new int[]{1,2,4,5,7,789,345};
session.setAttribute("num", num);
ArrayList<String> slist=new ArrayList<String>();
slist.add("aa");
slist.add("bb");
slist.add("cc");
slist.add("dd");
application.setAttribute("slist", slist);
%>
${num[3]} ${slist[2]}<hr/>
<!-- EL表达式通过[]和.组合使用访问有序集合中指定对应的属性 -->
<%
ArrayList<Student> stulist=new ArrayList<Student>();
stulist.add(new Student(1,"Tom",20));
stulist.add(new Student(2,"Mary",21));
stulist.add(new Student(3,"Tony",22));
stulist.add(new Student(4,"Jimmy",23));
stulist.add(new Student(5,"Sam",24));
request.setAttribute("stulist", stulist);
%>
${stulist[2].name}
<hr/>
<!-- 在访问键值对集合时,采用["键名称"]的形式是处理. -->
<%
HashMap<String,Student> map=new HashMap<String,Student>();
map.put("k1", new Student(1,"Tom",20));
map.put("k2", new Student(2,"Mary",21));
map.put("k3", new Student(4,"Jimmy",23));
map.put("k4", new Student(3,"Tony",22));
request.setAttribute("map", map);
%>
${map["k1"].name} ${map.k2.name }
笔记:
1.EL表达式输出静态内容
2.EL表达式输出的变量必须存放在作用域中,通过键名称访问对应值
3.EL表达式通过".“符号访问对象的属性,必须要求该对象提供规范的get方法.
4.EL表达式通过”[]"访问数组或者有序集合指定下标对应的元素内容
5.EL表达式通过[]和.组合使用访问有序集合中指定对应的属性
6.在访问键值对集合时,采用[“键名称”]的形式是处理
7.
2.demo2.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<!--
pageContext < request < session < application
EL表达式默认情况从小到大依次搜索各个作用域返回第一个复合条件的结果.
注意: 只有pageContext有findAttribute方法.
-->
<%
pageContext.setAttribute("n2", 100);
request.setAttribute("n", 200);
session.setAttribute("n", 300);
application.setAttribute("n", 400);
%>
${n}
<hr/>
<!-- EL表达式中的xxxScope表示直接从对应的作用域范围中提取值.如果没有对应的数据不会继续查找其他的作用域范围 -->
${pageScope.n}
${applicationScope.n}
笔记:
1.pageContext < request < session < application
EL表达式默认情况从小到大依次搜索各个作用域返回第一个复合条件的结果.
注意: 只有pageContext有findAttribute方法.
2.
3.demo3.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
笔记:
4.demo4.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%=request.getParameter("name") %>
${param.name}
${pageContext.request.contextPath}
${initParam.abc}
笔记:
demo5.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
//Cookie cookies[]=request.getCookies();
//for(Cookie c:cookies){
// out.println(c.getName()+" "+c.getValue()+"<br/>");
//}
%>
<%-- El表达式 ${cookie.cookie名.xx属性}直接获取指定cookie的属性值 --%>
${cookie.key.name}
${cookie.key.value}
<!--
使用El表达式在页面上打印一个九九乘法表
要求: 不准使用<%=%>也不准备使用out.println()
-->
web.xml
abc
123
笔记:
<%-- El表达式 ${cookie.cookie名.xx属性}直接获取指定cookie的属性值 --%>
${cookie.key.name}
${cookie.key.value}
BBS-Demo01
WebContent下
insert.jsp
<%@ page language=“java” import=“com.bbs.pojo.Admin” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
login.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
密码:
list.jsp
<%@ page language=“java” import=“java.util.*,com.bbs.pojo.Gestbook,com.bbs.util.DateUtil” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
我要留言
共15条留言 当前2/10页 第一页最 上一页 下一页 后一页
<% ArrayList list=(ArrayList)request.getAttribute("list"); HashMap
src\com\bbs
controller
ListGestBookServlet.java
package com.bbs.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bbs.dao.AdminDao;
import com.bbs.dao.GestbookDao;
import com.bbs.pojo.Gestbook;
public class ListGestBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private GestbookDao gestBookDao;
private AdminDao adminDao;
public ListGestBookServlet() {
super();
this.gestBookDao = new GestbookDao();
this.adminDao = new AdminDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
ArrayList<Gestbook> list=gestBookDao.getAllGestbook();
request.setAttribute("list", list);
// HashMap以 aid<==>aname 的形式组织所有的数据保存进来.
HashMap<Integer,String> map=new HashMap<Integer,String>();
for(Gestbook book:list) {
Integer aid=book.getAid();
String aname=adminDao.getNameById(book.getAid());
map.put(aid, aname);
}
request.setAttribute(“map”, map);
this.getServletContext().getRequestDispatcher("/list.jsp").forward(request, response);
}
}
InsertGestBookServlet.java
package com.bbs.controller;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bbs.dao.GestbookDao;
import com.bbs.pojo.Admin;
import com.bbs.pojo.Gestbook;
public class InsertGestBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private GestbookDao bookDao;
public InsertGestBookServlet() {
super();
this.bookDao = new GestbookDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
// 1.获取提交的留言数据
// gst_id 自动增长 default
// aid 会话中提取
// gst_title 表单提交过来
// gst_content 表单提交过来
// gst_time 当前时间 new Date();
// gst_ip 请求对象中包含有request.getRemoteAddr()
Admin admin=(Admin) request.getSession().getAttribute(“logined”);
Integer aid=admin.getAid();
String gst_title=request.getParameter(“gst_title”);
String gst_content=request.getParameter(“gst_content”);
Date gst_time=new Date();
String gst_ip=request.getRemoteAddr();
// 2.组织数据,通过Dao完成添加留言
Gestbook book=new Gestbook(aid, gst_title, gst_content, gst_ip, gst_time);
bookDao.insertGestbook(book);
// 3.返回到ListGestBookServlet重新提取所有浏览,并在list.jsp中显示新添加的数据内容
response.sendRedirect(“ListGestBookServlet”);
}
}
AdminLoginServlet.java
package com.bbs.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bbs.dao.AdminDao;
import com.bbs.pojo.Admin;
public class AdminLoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private AdminDao adminDao;
public AdminLoginServlet() {
super();
this.adminDao = new AdminDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
// 1.获取用户提交的信息
String strname = request.getParameter(“aname”);
String strpass = request.getParameter(“password”);
// 2.组织数据信息,调用Dao的业务方法
Admin admin=new Admin(strname,strpass);
Admin result=adminDao.login(admin);
// 3.根据结果返回到对应的页面或者下个Servlet
if(result!=null) {
request.getSession().setAttribute(“logined”, result);
response.sendRedirect(“ListGestBookServlet”);
return;
}
response.sendRedirect(“login.jsp”);
return;
}
}
dao
GestbookDao.java
package com.bbs.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList;
import com.bbs.pojo.Gestbook;
import com.bbs.util.C3P0Utils;
import com.bbs.util.DateUtil;
public class GestbookDao {
// 获取所有的数据列表
public ArrayList getAllGestbook(){
ArrayList list=new ArrayList();
String sql=“select * from tab_gestbook”;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con = C3P0Utils.getConn();
ps = con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
Gestbook book=new Gestbook();
book.setGst_id(rs.getInt(“gst_id”));
book.setAid(rs.getInt(“aid”));
book.setGst_title(rs.getString(“gst_title”));
book.setGst_content(rs.getString(“gst_content”));
book.setGst_ip(rs.getString(“gst_ip”));
Timestamp temp=rs.getTimestamp(“gst_time”);
book.setGst_time(temp);
list.add(book);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
C3P0Utils.closeJDBC(con, ps, rs);
}
return list;
}
// 添加新的留言信息
public int insertGestbook(Gestbook book) {
int result=0;
String sql=“insert into tab_gestbook values(default,?,?,?,?,?)”;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con = C3P0Utils.getConn();
ps = con.prepareStatement(sql);
ps.setInt(1, book.getAid());
ps.setString(2,book.getGst_title());
ps.setString(3, book.getGst_content());
ps.setString(4,DateUtil.getStringByDate(book.getGst_time()));
ps.setString(5, book.getGst_ip());
result=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
C3P0Utils.closeJDBC(con, ps, rs);
}
return result;
}
}
AdminDao.java
package com.bbs.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.bbs.pojo.Admin;
import com.bbs.util.C3P0Utils;
public class AdminDao {
public Admin login(Admin admin) {
Admin result=null;
String sql=“select aid,aname,password from tab_admin where aname=? and password=?”;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con = C3P0Utils.getConn();
ps = con.prepareStatement(sql);
ps.setString(1, admin.getAname());
ps.setString(2, admin.getPassword());
rs=ps.executeQuery();
if(rs.next()) {
result=new Admin();
result.setAid(rs.getInt(“aid”));
result.setAname(rs.getString(“aname”));
result.setPassword(rs.getString(“password”));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
C3P0Utils.closeJDBC(con, ps, rs);
}
return result;
}
public String getNameById(Integer id) {
String sql="select aname from tab_admin where aid=?";
String result=null;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con = C3P0Utils.getConn();
ps = con.prepareStatement(sql);
ps.setInt(1, id);
rs=ps.executeQuery();
if(rs.next()) {
result=rs.getString("aname");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
C3P0Utils.closeJDBC(con, ps, rs);
}
return result;
}
}
pojo(entity)
Admin.java
Gestbook.java
util
C3P0Utils.java
package com.bbs.util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Utils {
static ComboPooledDataSource dataSource = new ComboPooledDataSource(“mysql”);
public static Connection getConn() {
try {
Connection conn = dataSource.getConnection();
return conn;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void closeJDBC(Connection con,Statement st,ResultSet rs) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st!=null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if(con!=null && con.isClosed()==false) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
DateUtil.java
package com.bbs.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static String getStringByDate(Date date) {
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
return sdf.format(date);
}
}
src
c3p0-config.xml
<!--配置连接池mysql -->
<named-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">123</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</named-config>