zoukankan      html  css  js  c++  java
  • 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<T> implements Serializable {
    
    	/*
    	 * javaBean 定义分页模型 泛型
    	 */
    	private int pagesize=3;//每页显示的条数
    	private int pageno=1;//当前页码
    	private int totalrecords;//总数据条数
    	private int totalpage;
    	private ArrayList<T> 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<T> getDatalist() {
    		return datalist;
    	}
    	public void setDatalist(ArrayList<T> datalist) {
    		this.datalist = datalist;
    	}
    	public JavaBeanPage(int pagesize, int pageno, int totalrecords,
    			int totalpage, ArrayList<T> 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<User> getlist(Map<String, Object> map){
    		JavaBeanPage<User> page = new JavaBeanPage<User>();
    		page.setPageno(Integer.parseInt((String) map.get("pageno")));      //设置当前页码
    	//	page.setPagesize((Integer)map.get("pagesize"));    //设置每页显示的数据数量
    		
    		page.setTotalrecords(getCount());//设置总数据条数
    		page.setTotalpage();//设置总页数
    /*		ArrayList<User> 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<User> list = new ArrayList<User>();//临时存放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<User> qurey(String name,String pwd){
    		ConnCreate connCreate = new ConnCreate();
    		Connection conn = connCreate.createConn();
    		StringBuffer sql=new StringBuffer("select * from user where 1=1");
    		ArrayList<User>  uList=new ArrayList<User>();
    		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<User> qurey(String name,int id){
    		ConnCreate connCreate = new ConnCreate();
    		Connection conn = connCreate.createConn();
    		StringBuffer sql=new StringBuffer("select * from user where 1=1");
    		ArrayList<User>  uList=new ArrayList<User>();
    		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<User> 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<String, Object>();
    			map.put("pageno", pageno);
    			//map.put("pagesize", 3);
    			UserJdbc userJdbc = new UserJdbc();
    			JavaBeanPage<User> 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表达式的简单运用

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@taglib  uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'jstl.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <table cellpadding="0" cellspacing="0" width="50%"  align="center">
            		<tr> <th>编号</th>
            		<th>ID</th>
            		<th>用户名</th>
            		   <th>邮件</th>
            		   <th>电话</th>
            		   <th>密码</th>
            		   <th>性别</th>
            		</tr>
            		        <c:forEach   items="${pagelist.datalist}"  var="item"  varStatus="status">
    	        		        <tr>
    	        		        			<td>${status.index }</td>
    	        		        		    <td>${item.uid }</td>
    				        			<td>${item.uname }</td>
    				        		        <td>${item.uemail }</td>
    				        		        <td> ${item.utel }</td>
    				        		        <td>${item.upwd }</td>
    				        		        <td>${item.usex }</td>
    	        		        </tr>
            		        </c:forEach>
            		        
            		         <tr>
            		         		<td></td>
    			        		         <td>当前页:${pagelist.pageno } /总页数:${pagelist.totalpage }</td>
    			        		         <td><a href="UserServlet?op=page&pageno=1"> 首页</a></td>
    			        		         <td><a href="UserServlet?op=page&pageno=${pagelist.pageno>1?pagelist.pageno-1:pagelist.pageno}">上一页</a></td>
    			        		         <td><a href="UserServlet?op=page&pageno=${pagelist.pageno<pagelist.totalpage?pagelist.pageno+1:pagelist.totalpage}">下一页</a></td>
    			        		         <td><a href="UserServlet?op=page&pageno=${pagelist.totalpage }">尾页</a></td>
            		         </tr>
             </table>
             <c:set    value="99"  var="score"></c:set>
              成绩:<c:out  value="${score}"></c:out>
             <c:if test="${score>80}">成绩很优秀   </c:if><br/>
             <c:set  value="6" var="grade" ></c:set>
             <select name="grade">
                  <c:choose>
    		             <c:when test="${grade==1}">
    		            		 <option value="1">倔强青铜</option>
    		             </c:when>
    		             <c:when test="${grade==2}">
    		             		<option value="2">秩序白银</option>
    		             </c:when>
    		             <c:when test="${grade==3}">
    		           			 <option value="3">荣耀黄金</option>
    		             </c:when>
    		              <c:when test="${grade==4}">
    		            		 <option value="4">尊贵铂金</option>
    		             </c:when>
    		              <c:when test="${grade==5}">
    		             		<option value="5">永恒钻石</option>
    		             </c:when>
    					<c:otherwise >
    							<option >王者</option>
    					</c:otherwise>
                 </c:choose>
             </select>
             <br/>
             <c:set value="语文,数学,英语,C++,C#,JAVA,PHP"  var="subject" scope="session"></c:set>
             <c:forTokens items="${subject}" delims=","  begin="0" end="2"   var="ke">
             		<c:out value="${ke}"></c:out><br/>
             </c:forTokens>
             <br/>
    		当前时间:<fmt:formatDate value="${nowdate}" pattern="yyyy年MM月dd日 HH:mm:ss"/>         
    		<br/>
    		<h3>数字格式化:</h3>
    			<c:set var="balance" value="120000.2309" />
    			<p>格式化数字 (1): <fmt:formatNumber value="${balance}" 
    			            type="currency"/></p>
    			<p>格式化数字 (2): <fmt:formatNumber type="number" 
    			            maxIntegerDigits="3" value="${balance}" /></p>
    			<p>格式化数字 (3): <fmt:formatNumber type="number" 
    			            maxFractionDigits="3" value="${balance}" /></p>
    			<p>格式化数字 (4): <fmt:formatNumber type="number" 
    			            groupingUsed="false" value="${balance}" /></p>
    			<p>格式化数字 (5): <fmt:formatNumber type="percent" 
    			            maxIntegerDigits="3" value="${balance}" /></p>
    			<p>格式化数字 (6): <fmt:formatNumber type="percent" 
    			            minFractionDigits="10" value="${balance}" /></p>
    			<p>格式化数字 (7): <fmt:formatNumber type="percent" 
    			            maxIntegerDigits="3" value="${balance}" /></p>
    			<p>格式化数字 (8): <fmt:formatNumber type="number" 
    			            pattern="###.###E0" value="${balance}" /></p>
    			<p>美元 :
    			<fmt:setLocale value="en_US"/>
    			<fmt:formatNumber value="${balance}" type="currency"/></p>

    <hr/>
    <%--el表达式的使用:
    等于:== eq
    不等于:!= ne
    大于等于:>= ge
    小于等于:<= le
    小于:< lt
    大于:> gt
    逻辑与: && and
    逻辑或: || or
    逻辑非: ! not
    是否为空:empty
    --%>

    总条数:${requestScope.pagelist.totalrecords }<br/>
    等于:${pagelist.pageno eq pagelist.pagesize }<br/>
    不等于:${pagelist.pageno ne pagelist.pagesize }<br/>

      </body>
    </html>
    

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

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

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@  taglib  uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'jstlApply.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <!-- 1根据不同年龄段 判断人群类别。 少年 青年 …….. (多种方式实现)
    	         2使用forTokens  拆分遍历数据。(blue,red,green|yellow|pink,black|white)
                 3获得时间:格式化输出年 月 日 时 分 秒 AM /PM
                 4得到一个数字 已不同的方式输出为金额格式  (美元 人民币)
         -->
         <c:set  value="25"  var="age"></c:set>
         <c:out value="${age}"></c:out><br/>
         <hr/>
      c:choose和c:when方式:  
        <c:choose>
        	<c:when test="${age<=10}">儿童</c:when>
        	<c:when test="${age<=30&&age>10}">青年</c:when>
        	<c:when test="${age<=50&&age>30}">中年</c:when>
        	<c:when test="${age>50}">老年</c:when>
        </c:choose><br/>
      c:if方式:  
       <c:if test="${age<=10}">儿童</c:if>
        <c:if test="${age<=30&&age>10}">青年</c:if>
        <c:if test="${age<=50&&age>30}">中年</c:if>
        <c:if test="${age>50}">老年</c:if><br/>
           <hr/>
        <c:set value="blue,red,green|yellow|pink,black|white"  var="str"></c:set>
        原字符串:<c:out value="${str}"></c:out><br/>
        c:forTokens:
        <c:forTokens items="${str}" delims=","  var="color">
            <c:forTokens items="${color}" delims="|" var="co">
        	${co}
            </c:forTokens>
        </c:forTokens>
             <hr/>
        <c:set   value="<%=new Date() %>"  var="nowdate"></c:set><br/>
        <fmt:formatDate value="${nowdate}" pattern="yyyy年MM月dd日  HH:mm:ss a" var="date"/>
        fmt:formatDate:<c:out value="${date}"></c:out><br/>
        <c:set value="3568" var="num"></c:set>
         fmt:formatNumber:
           <fmt:formatNumber   type="currency" value="${num}" ></fmt:formatNumber><br/>
    		<fmt:formatNumber currencySymbol="$"  value="${num}"></fmt:formatNumber><br/>
            <fmt:formatNumber  currencyCode="$" value="${num}"></fmt:formatNumber><br/>
          <!--  jstl函数:使用
    					5 判断字符串A中是否有存在子串B (忽略大小写/不忽略大小写);
    					6 集合中装有多个字符串,遍历 输出以指定字符结尾的 字符串;
    					7集合中装有多个字符串,输出不同字符串中指定字符出现的位置。
    					8将多个字符串 拼接为一个字符串。
    					9截取返回 字符串 指定范围、 之前、 之后的内容。
    					10字符串的替换操作。
             -->
    		<% String str1 = "javascripet";
    				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<br/>
    		${fn:contains(str1,str2) }<br/>
    		${fn:containsIgnoreCase(str1,str2) }<br/>
    		endsWith:
    		<c:forEach items="${liststr}" var="strl"  varStatus="status">
    			${status.index}
    		    ${strl}
    			${fn:endsWith(strl, "jstl")} <%="," %><br/>
    		</c:forEach><br/>
    	indexOf:	<c:forEach items="${liststr}" var="strof">
    			 ${strof}
    			 ${fn:indexOf(strof, 'j')}
    			 <%="," %>
    		</c:forEach><br/>
         <hr/>
    		<c:set var="string1" value="I am from google"/>
    		<c:set var="string2" value="${fn:replace(string1, 'google', 'runoob')}" />
    		<p>replace替换后的字符串 : ${string2}</p>
    		     <hr/>
    		<c:set var="string1" value="www runoob com"/>
    		<c:set var="string2" value="${fn:split(string1, ' ')}" />
    		<%
    				String[] arr = {"This","is","array","string"};
    				request.setAttribute("arr",arr);
    		 %>
    		 <c:set value="${arr}" var="array"></c:set>
    		 arr使用join连接: ${fn:join(array,'-') }
    		<c:set var="string3" value="${fn:join(string2, '-')}" /><!-- string2是字符串数组 -->
    		<p>字符串为 : ${string3}</p>
    		<c:set var="string4" value="This is first String."/>
    		<c:set var="string5" value="${fn:substring(string4, 5, 15)}" />
    		<p>生成的子字符串为 : ${string5}</p>
    		<c:set var="string6" value="${fn:substringAfter(string4, 'is')}" />
    		<p>After生成的子字符串 : ${string6}</p>
    		<c:set var="string7" value="${fn:substringBefore(string4,  'first')}" />
    		<p>Before生成的子字符串 : ${string7}</p>
    
      </body>
    </html>

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

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	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">
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>UserServlet</servlet-name>
        <servlet-class>com.direct.servlet.UserServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>UserServlet</servlet-name>
        <url-pattern>/UserServlet</url-pattern>
      </servlet-mapping>
      
      <servlet>
    		  <servlet-name>config_jsp</servlet-name>
    		     <jsp-file>/config.jsp</jsp-file>
    		  <init-param>
    		        <param-name>configFile</param-name>
    		            <param-value>confi.txt配置文件的信息</param-value>
    		  </init-param>
      </servlet>
      <servlet-mapping>
      	    <servlet-name>config_jsp</servlet-name>
                <url-pattern>/conf.jsp</url-pattern>
      </servlet-mapping>
    
      
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    

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

    config.jsp

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

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'config.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
      
      			配置文件名:<%=config.getInitParameter("configFile") %>
      </body>
    </html>
    

      

  • 相关阅读:
    e:可以解包多种存档花样的小工具
    Envy-便当的显卡驱动装置脚本
    用 Timer Applet 做 GTD 经管
    Sabayon:治理 GNOME 用户的设置
    网管的心得体会
    WinAPI: WindowFromPoint 获取指定点所在窗口的句柄
    WinAPI: SetLayeredWindowAttributes 设置窗口的透明
    谈谈 Delphi 的类型与指针[1]
    全局探色器
    说到"计算器", 建议大家用它进行"进制转换"
  • 原文地址:https://www.cnblogs.com/nn369/p/8044116.html
Copyright © 2011-2022 走看看