java jdbc标签jsp_javaweb jdbc实现简单的数据库基本操作和servlet的作用域以及jsp标签的使用...

一,工具类,分页类和连接数据库jdbc

package com.direct.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class ConnCreate {

private static final String DRIVER="com.mysql.jdbc.Driver";

private static final String URL="jdbc:mysql://localhost:3306/countryside_buy?userUnicode=true&characterEncoding=utf-8";

private static final String USER="root";

private static final String PWD="123456";

static{

try {

Class.forName(DRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//创建连接对象

public Connection createConn(){

Connection conn = null;

try {

conn = DriverManager.getConnection(URL, USER, PWD);

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

//关闭连接

public void closeJ(Connection conn,PreparedStatement ps,ResultSet rs) throws SQLException{

if(rs!=null) rs.close();

if(ps!=null) ps.close();

if(conn!=null) conn.close();

}

}

package com.direct.util;

import java.io.Serializable;

import java.util.ArrayList;

public class JavaBeanPage implements Serializable {

/*

* javaBean 定义分页模型 泛型

*/

private int pagesize=3;//每页显示的条数

private int pageno=1;//当前页码

private int totalrecords;//总数据条数

private int totalpage;

private ArrayList datalist = null;//当前页的数据

public int getPagesize() {

return pagesize;

}

public void setPagesize(int pagesize) {

this.pagesize = pagesize;

}

public int getPageno() {

return pageno;

}

public void setPageno(int pageno) {

this.pageno = pageno;

}

public int getTotalrecords() {

return totalrecords;

}

public void setTotalrecords(int totalrecords) {

this.totalrecords = totalrecords;

}

public int getTotalpage() {

return totalpage;

}

// 设置总页数 总数据/每页条数

public void setTotalpage() {

if (totalrecords%pagesize==0) {

this.totalpage = totalrecords/pagesize;

}else {

this.totalpage = totalrecords/pagesize+1;

}

}

public ArrayList getDatalist() {

return datalist;

}

public void setDatalist(ArrayList datalist) {

this.datalist = datalist;

}

public JavaBeanPage(int pagesize, int pageno, int totalrecords,

int totalpage, ArrayList datalist) {

super();

this.pagesize = pagesize;

this.pageno = pageno;

this.totalrecords = totalrecords;

this.totalpage = totalpage;

this.datalist = datalist;

}

public JavaBeanPage() {

super();

}

}

二,dao层对数据的连接和对数据的基本操作

package com.direct.dao;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Map;

import com.direct.entity.User;

import com.direct.util.ConnCreate;

import com.direct.util.JavaBeanPage;

public class UserJdbc {

//从数据中用sql语句分页,得到每页的显示数据集合对象

public JavaBeanPage getlist(Map map){

JavaBeanPage page = new JavaBeanPage();

page.setPageno(Integer.parseInt((String) map.get("pageno"))); //设置当前页码

//page.setPagesize((Integer)map.get("pagesize")); //设置每页显示的数据数量

page.setTotalrecords(getCount());//设置总数据条数

page.setTotalpage();//设置总页数

/*ArrayList datalist = page.getDatalist();

System.out.println(datalist.get(0)); */

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

PreparedStatement ps = null;

ResultSet rs =null;

// 查询起始位置 (当前页数-1)*每页显示的条数

int begin =(page.getPageno() -1)*page.getPagesize();

//查询每页显示条数

int end = page.getPagesize();

String sql = "select * from user limit "+begin+" , "+end;

ArrayList list = new ArrayList();//临时存放user对象,最后传入page中的集合

try {

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

while (rs.next()) {

User user= new User(rs.getInt("user_id"),

rs.getString("user_name"),

rs.getString("user_email"),

rs.getString("user_password"),

rs.getString("user_telphone"),

rs.getInt("user_status"),

rs.getString("user_sex"));

//System.out.println(user);

list.add(user);

}

page.setDatalist(list);

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, rs);

} catch (SQLException e) {

e.printStackTrace();

}

}

return page;

}

//访问数据库得到数据的总条数

public int getCount(){

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

PreparedStatement ps = null;

ResultSet rs =null;

int count=0;

String sql = "select count(user_id) as count from user";

try {

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

while (rs.next()) {

count= rs.getInt("count");

}

// System.out.println("总数据条数:"+count);

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, null);

} catch (SQLException e) {

e.printStackTrace();

}

}

return count;

}

public ArrayList qurey(String name,String pwd){

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

StringBuffer sql=new StringBuffer("select * from user where 1=1");

ArrayList uList=new ArrayList();

PreparedStatement ps = null;

ResultSet rs = null;

if (name!=null&&!("").equals(name)&&pwd!=null&&!("").equals(pwd)) {

sql.append(" and user_name='"+name+"'");

sql.append(" and user_password='"+pwd+"'");

try {

ps= conn.prepareStatement(sql.toString());

rs = ps.executeQuery();

while (rs.next()) {

User user= new User(rs.getInt("user_id"),

rs.getString("user_name"),

rs.getString("user_email"),

rs.getString("user_password"),

rs.getString("user_telphone"),

rs.getInt("user_status"),

rs.getString("user_sex"));

uList.add(user);

//System.out.println("list添加一个对象");

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, rs);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

return uList;

}

//参数列表不同,不同的调用,应该用重载

public ArrayList qurey(String name,int id){

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

StringBuffer sql=new StringBuffer("select * from user where 1=1");

ArrayList uList=new ArrayList();

PreparedStatement ps = null;

ResultSet rs = null;

if(name!=null&&!("").equals(name)){

sql.append(" and user_name='"+name+"'");

}else if(id!=0){

sql.append(" and user_id='"+id+"'");

}

try {

ps= conn.prepareStatement(sql.toString());

rs = ps.executeQuery();

while (rs.next()) {

User user= new User(rs.getInt("user_id"),

rs.getString("user_name"),

rs.getString("user_email"),

rs.getString("user_password"),

rs.getString("user_telphone"),

rs.getInt("user_status"),

rs.getString("user_sex"));

uList.add(user);

System.out.println("list添加一个对象");

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, rs);

} catch (SQLException e) {

e.printStackTrace();

}

}

return uList;

}

//增

public Boolean addUsers(User uent){

Boolean bool = false;

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

PreparedStatement ps = null;

String sql = "insert into user(user_name,user_email,user_password,user_telphone,user_status,user_sex) values(?,?,?,?,?,?)";

try {

ps = conn.prepareStatement(sql);

ps.setString(1, uent.getUname());

ps.setString(2, uent.getUemail());

ps.setString(3, uent.getUpwd());

ps.setString(4, uent.getUtel());

ps.setInt(5, uent.getUsatus());

ps.setString(6, uent.getUsex());

int temp = ps.executeUpdate();

if (temp>0) {

System.out.println("添加成功!!!");

bool = true;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, null);

} catch (SQLException e) {

e.printStackTrace();

}

}

return bool;

}

// 改

public Boolean changeUser(int id,User uent){

Boolean bool = false;

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

PreparedStatement ps=null;

//update user set user_name=?,user_email=?,user_password=?,user_telphone=?,user_sex=? where name ='star'

StringBuffer sql = new StringBuffer("update user set user_name=?,user_email=?,user_password=?,user_telphone=?,user_sex=? where user_id= '"+id+"'");

try {

ps = conn.prepareStatement(sql.toString());

ps.setString(1, uent.getUname());

ps.setString(2, uent.getUemail());

ps.setString(3, uent.getUpwd());

ps.setString(4, uent.getUtel());

ps.setString(5, uent.getUsex());

int rows = ps.executeUpdate();

if(rows>0){

System.out.println("修改成功!!!");

bool=true;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, null);

} catch (SQLException e) {

e.printStackTrace();

}

}

return bool;

}

//删

public Boolean deleteUser(int id){

Boolean bool = false;

ConnCreate connCreate = new ConnCreate();

Connection conn = connCreate.createConn();

PreparedStatement ps = null;

String sql = "delete from user where user_id='"+id+"'";

try {

ps = conn.prepareStatement(sql);

int rows = ps.executeUpdate();

if (rows>0) {

System.out.println("删除成功!!!");

bool = true;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

connCreate.closeJ(conn, ps, null);

} catch (SQLException e) {

e.printStackTrace();

}

}

return bool;

}

/*public static void main(String[] args) {

ArrayList list = new UserJdbc().qurey("小白","123456");

System.out.println(list.size());

User user = new User(1, "小蓝", "nn147552384@163.com", "435256", "13996932845", 0, "女");

new UserJdbc().addUsers(user);

System.out.println(new UserJdbc().getCount());

//new UserJdbc().getlist();

}*/

}

三,service层的接受前台数据和响应

package com.direct.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.direct.dao.UserJdbc;

import com.direct.entity.User;

import com.direct.util.JavaBeanPage;

public class UserServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("utf-8");// 设置字符编码

response.setContentType("text/html;charset=utf-8");// 设置输出内容的类型及字符编码

response.setCharacterEncoding("utf-8");

/*

* 三种作用域

* request 一次请求 只能用forward转换页面

* session 一次会话 在浏览器中可以访问,关闭浏览器重开不能

* application 一直 关闭浏览器后在打开,访问得到 (一般用于网站访问人数的数据)

*/

String username = request.getParameter("username");// 获取值 表单值

String[] values = request.getParameterValues("hobby");// 获取数组 表单复选框

String hob = "";

for (int i = 0; i < values.length; i++) {

hob+=values[i]+",";

}

HttpSession session = request.getSession();

session.setAttribute("sname", "dgdfhhh");

session.setAttribute("spwd", "fugfgh");

session.setMaxInactiveInterval(10);//设置最大存在时间 单位秒

session.invalidate();//销毁

session.removeAttribute("sname");//移除存放的值

ServletContext application = this.getServletContext();

application.setAttribute("aname", "fyjhjhgjfk");

application.setAttribute("apwd", "dfjgfhdf");

/*

* 内部跳转 请求转发 forward() 一次请求 外部跳转 重定向 sendRedirect() 两次请求

*/

// request.getRequestDispatcher("MyJsp.jsp").forward(request, response);

PrintWriter out = response.getWriter();// 返回PrintWriter 输出流对象

//out.print("sdfniodg");//响应给前台

//response.sendRedirect("MyJsp.jsp");// 重定向跳转页面

String op = request.getParameter("op");

if(("page").equals(op)){

//op=page&pageno=1

String pageno = request.getParameter("pageno");//当前页码

System.out.println(pageno+"pageno");

Map< String, Object> map = new HashMap();

map.put("pageno", pageno);

//map.put("pagesize", 3);

UserJdbc userJdbc = new UserJdbc();

JavaBeanPage pagelist = userJdbc.getlist(map);

request.setAttribute("nowdate", new Date());//存入当前时间

request.setAttribute("pagelist", pagelist);//存入request属性值

//request.getRequestDispatcher("pagelist.jsp").forward(request, response);

request.getRequestDispatcher("jstl.jsp").forward(request, response);

} else {

System.out.println("--------------else----------");

}

}

}

四,jsp页面取数据和显示的几种方式

jstl中 c 标签和 fmt 标签的简单使用。和实现真分页。以及el表达式的简单运用

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'jstl.jsp' starting page
编号ID用户名邮件电话密码性别
${status.index }${item.uid }${item.uname }${item.uemail } ${item.utel }${item.upwd }${item.usex }
当前页:${pagelist.pageno } /总页数:${pagelist.totalpage } 首页上一页下一页尾页

成绩:

成绩很优秀

倔强青铜

秩序白银

荣耀黄金

尊贵铂金

永恒钻石

王者

当前时间:

数字格式化:

格式化数字 (1):

type="currency"/>

格式化数字 (2):

maxIntegerDigits="3" value="${balance}" />

格式化数字 (3):

maxFractionDigits="3" value="${balance}" />

格式化数字 (4):

groupingUsed="false" value="${balance}" />

格式化数字 (5):

maxIntegerDigits="3" value="${balance}" />

格式化数字 (6):

minFractionDigits="10" value="${balance}" />

格式化数字 (7):

maxIntegerDigits="3" value="${balance}" />

格式化数字 (8):

pattern="###.###E0" value="${balance}" />

美元 :


等于:== eq

不等于:!= ne

大于等于:>= ge

小于等于:<= le

小于:< lt

大于:> gt

逻辑与: && and

逻辑或: || or

逻辑非: ! not

是否为空:empty

--%>

总条数:${requestScope.pagelist.totalrecords }

等于:${pagelist.pageno eq pagelist.pagesize }

不等于:${pagelist.pageno ne pagelist.pagesize }

jstl中标签的使用,c,fmt,functions。

服务器开启后,直接访问本页面即可

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'jstlApply.jsp' starting page

c:choose和c:when方式:

儿童

青年

中年

老年

c:if方式:

儿童

青年

中年

老年


原字符串:

c:forTokens:

${co}


fmt:formatDate:

fmt:formatNumber:

String str2 = "vAsc";

ArrayList liststr = new ArrayList();

liststr.add("bluejstl");

liststr.add("redjstld");

liststr.add("yelllowjstl");

liststr.add("blackjstla");

liststr.add("bluejstl");

request.setAttribute("liststr",liststr);

%>

jstl:function

${fn:contains(str1,str2) }

${fn:containsIgnoreCase(str1,str2) }

endsWith:

${status.index}

${strl}

${fn:endsWith(strl, "jstl")}

indexOf:

${strof}

${fn:indexOf(strof, 'j')}


replace替换后的字符串 : ${string2}


String[] arr = {"This","is","array","string"};

request.setAttribute("arr",arr);

%>

arr使用join连接: ${fn:join(array,'-') }

字符串为 : ${string3}

生成的子字符串为 : ${string5}

After生成的子字符串 : ${string6}

Before生成的子字符串 : ${string7}

五,web.xml中的配置,以及使用配置文件实现初始化数据

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

This is the description of my J2EE component

This is the display name of my J2EE component

UserServlet

com.direct.servlet.UserServlet

UserServlet

/UserServlet

config_jsp

/config.jsp

configFile

confi.txt配置文件的信息

config_jsp

/conf.jsp

index.jsp

六,web.xml 中初始化的数据在发布服务器后可直接访问取数据

config.jsp

访问   http://localhost:8082/webProject/conf.jsp

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'config.jsp' starting page

配置文件名:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值