jsp学习总结

《一》
jsp指令元素:page,include,tablib
脚本元素:<% java代码 %> <%= java表达式 %> <!%变量和函数声明 %>
动作元素:<jsp:useBean><jsp:setProperty><jsp:include><jsp:plugin>
<jsp:forward><jsp:fallback><jsp:param>
9大内置对像:out,request,response,session,application,pageContext,
exception,page,config
页面头必须写对:
<%@ page contentType="text/html; charset=gb2312"%>
注释的时候不能把<%%>包含在注释部分。要不然会导致错误。
《二》
post get的区别:
内容post比get多,安全post比get安全,相应的速度get比post快;
response.sendRedirect("url");
如何将一个页面得到的数据传到下一个页面:
1:cookie 2: session 3:response.sendRedirect("hello.jsp?username="+username),其中usename为在页面得到的数据,下页面接收数据这样写:
<%=request.getParameter("username")%>
《三》
出现了乱码问题:乱码有以下表现形式
1、JSP与页面参数之间的乱码
JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。
解决这类乱码问题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方式:request.setCharacterEncoding("GBK")或request.setCharacterEncoding("gb2312")。
如果在JSP将变量输出到页面时出现了乱码,可以通过设置response.setContentType("text/html;charset=GBK")或response.setContentType("text/html;charset=gb2312")解决。
2、Java与数据库之间的乱码
大部分数据库都支持以unicode编码方式,所以解决Java与数据库之间的乱码问题比较明智的方式是直接使用unicode编码与数据库交互。
很多数据库驱动自动支持unicode,如Microsoft的SQLServer驱动。其他大部分数据库驱动,可以在驱动的url参数中指定,
如如mm的mysql驱动:jdbc:mysql://localhost/WEBCLDB?useUnicode=true&characterEncoding=GBK
3、Java与文件/流之间的乱码
    Java读写文件最常用的类是FileInputStream/FileOutputStream和FileReader/FileWriter。其中FileInputStream和FileOutputStream是基于字节流的,
    常用于读写二进制文件。读写字符文件建议使用基于字符的FileReader和FileWriter,省去了字节与字符之间的转换。但这两个类的构造函数默认使用系统的编码方式,
    如果文件内容与系统编码方式不一致,可能会出现码。     在这种情况下,建议使用FileReader和FileWriter的父类:
    InputStreamReader/OutputStreamWriter,它们也是基于字符的,但在构造函数中可以指定编码类型:
    InputStreamReader(InputStream in, Charset cs) 和OutputStreamWriter(OutputStream out, Charset cs)
《四》
分页技术:
定义四个变量:pageSize(每页显示的记录数) pageNow(用户要看的第几页) pageCount(总共页数) rowCount(记录数总数)
if(rowCount%pagesize == 0) {
    pageCount = rowCount / pagesize;
}else {
    pageCount = rowCount / pagesize + 1;
}

sqlserver中要实现分页技术用top函数实现:

select top 3 * from users where userid not in (select top pagesize*(pageNow-1) userid from users);//排除前3条,再往后取3条

"select top" +pageSize+ " * from users where userid not in (select top " + pageSize + " *( " + pageNow-1 + ") userid from users)" ;
《五》
查看数据库占用资源命令:netstat - an
连接数据库代码:
/*//加载驱动和url
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbUrl = "jdbc:sqlserver://localhost:1433;databaseName=spdb1";

Class.forName(driverName);Connection ct = DriverManager.getConnection(dbUrl, "sa", "123456");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select passwd from users where username='" + username + "'");
if (rs.next()) {
if (rs.getString(1).equals(pswd)) {
//输入正确
System.out.println(username);
response.sendRedirect("wel.jsp?username=" + username);
System.out.println("输入正确");
} else {
//密码错误
response.sendRedirect("login.jsp");
System.out.println("密码错误");
}
} else {
//用户名错误
response.sendRedirect("login.jsp");
System.out.println("用户名错误");
}
*/
《六》
session技术讲解:
1:session作用:1,网上商城的购物车 2,保存用户登录信息  3,将某些数据放入session中,供同以用户各个页面访问 4防止用户非法登录到某个页面
2:session可以理解为一张表,2个字段:名字(String)和值(Object),每一行记录代表一个属性
3:使用session 
    得到session:(servlet) HttpSession hs = request.getSession(true);
                 (jsp)     session是jsp中的内置对象,可以直接使用
    向session中添加属性:(servlet) hs.setAttribute(String name,Object val);
                          (jsp)      session.setAttribute(String name,Object o);
    从session中得到某个属性:(servlet)hs.getAttribute(String name);
                              (jsp) session.getAttribute(String name);
    从session删除某个属性:  (servlet):hs.removeAttribute(String name);
                             (jsp): session.removeAttribute(String name);
4:session如果不指定时间,默认是30分钟,发呆时间,如果sessin无效,那么里面的属性全部无效,当某个
浏览器访问网站时,服务器会给每个浏览器分配一个session id。可以用来统计
5:合适使用session:1:保存用户信息 2:保存购物车(session存在服务器中,所以一般情况不要session。要不然服务器内存不够使)

























你可能感兴趣的:(jsp,mysql,servlet,jdbc,浏览器)