一,Cookie
创建Cookie对象:
Cookie cookie=new Cookie("名称","值");
写入Cookie:
response.addCookie(cookie);
读取Cookie:
Cookie[] cookies=request.getCookie();
if(cookies[i].getName().equals("user")){
user=cookies[i].getValue();
}
getName():获取Cookie名称
getValue():获取Cookie的值
getMaxAge():获取Cookie的有效期,以秒为单位
setValue(String value):为Cookie赋值
setMaxAge(int expiry):设置Cookie的有效期,以秒为单位
expiry:0表示删除Cookie,-1或者不设置,表示当前窗口关闭后失效
二,使用JDBC访问数据库
public void test(String title) throws Exception {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/kgcnews?useUnicode=true&characterEncoding=UTF-8","root","root");
String sql="SELECT COUNT(1) FROM bbs_detail WHERE title=?";
//发送sql语句
PreparedStatement pstmt=conn.prepareStatement(sql);
//把参数加入sql语句里,动态补全sql
pstmt.setString(1,title);
//得到结果集,查询用
ResultSet rs=pstmt.executeQuery();
//得到作用行数,增删改用
int coun=pstmt.executeUpdate();
while (rs.next()){
int count=rs.getInt(1);
}
if(rs!=null){
rs.close();
}
}
三,数据源与连接池
在tomcat安装目录下context.xml文件配置:
<Resource name="jdbcMysql"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/kgcnews?useUnicode=true&characterEncoding=utf8" />
java代码:
public void test1(String title) throws Exception {
//初始化上下文
Context context=new InitialContext();
//获取与配置文件context.xml里面jdbcMysql逻辑名相关联的数据源对象,java:comp/env固定写法,jdbcMysql逻辑名
DataSource ds=(DataSource) context.lookup("java:comp/env/jdbcMysql");
Connection conn=ds.getConnection();
String sql="SELECT COUNT(1) FROM bbs_detail WHERE title=?";
//发送sql语句
PreparedStatement pstmt=conn.prepareStatement(sql);
//把参数加入sql语句里,动态补全sql
pstmt.setString(1,title);
//得到结果集,查询用
ResultSet rs=pstmt.executeQuery();
//得到作用行数,增删改用
int coun=pstmt.executeUpdate();
while (rs.next()){
int count=rs.getInt(1);
}
if(rs!=null){
rs.close();
}
}
四,EL表达式
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
${requestScope.news} //取值
//value:输出的表达式,default:value为空时默认输出值,escapeXml:是否对内容进行转义
<c:out value="value" default="1" escapeXml="true"/>
<c:forEach var="名称" items="集合对象" varStatus="index索引号">
begin:开始 end:结束 step:步长
index.count:从1开始索引 index.index:从0开始索引 index.current:从begin开始
</c:forEach>
<c:if test="条件" var="varName" scope="request">
var:判断的结果 scope:结果存放的作用域
</c:if>
//value:时间对象 pattern:显示格式
<fmt:formatDate value="date" pattern="yyyy-MM-dd"/>
五,servlet
新建servlet,实现HttpServletRequest接口
或者继承HttpServlet类
web.xml配置文件配置代码
<servlet>
<servlet-name>DeleteCommonsServlet</servlet-name>
<servlet-class>cn.kgc.world.web.servlet.DeleteCommonsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DeleteCommonsServlet</servlet-name>
<url-pattern>/servlet/DeleteCommonsServlet</url-pattern>
</servlet-mapping>
六,过滤器
1,新建filter类,实现Filter接口,编写doFilter()方法
//统一设置编码格式
public class CharacterEncodingFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
System.out.println("doFilter");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
}
2,在web.xml配置文件配置:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>cn.kgc.web.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
/pages/paging.jsp :精确匹配
/pages/*:目录匹配
.jsp:扩展名匹配
/:全部匹配
七,汉字和字母判断
public void test() {
String str="wgow全mg伙250''/'[]会wugw全164gw末尾gw";
for(int i=0;i<str.length();i++){
//获取每一个字符
char c=str.charAt(i);
//判断是否是汉字
if(c>0x0391 && c<0xFFE5){
System.out.print(c+"\t");
}
}
System.out.println();
for(int j=0;j<str.length();j++){
//获取每一个字符
char ch=str.charAt(j);
//判断是否是字母或者数字或者特殊字符
if(ch>0x0000 && ch<0x00FF){
System.out.print(ch+"\t");
}
}
}
八,颜色
import java.awt.*;
public class TestFive {
public void test1() {
//给定颜色值,(r+g+b)/3,3个值一样是灰色,3个值都越小,越是黑色
Color color = new Color(85, 45, 78);
//获得RGB颜色值
int col=color.getRGB();
//显示一个byte型的单字节十六进制的编码
String inte=Integer.toHexString(col);
//从第3的一个字符开始截取 ff000000--000000
inte.substring(2);
}
}