|
|
原文:用户登录验证的JSP完整程序
public String validateUser(String inputUserid, String inputPwd) throws SQLException { String returnString = null; String dbUserid = "userid"; // 数据库的用户名 String dbPassword = "password" ; //数据库的密码 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:myDriver", dbUserid , dbPassword ); Statement stmt = con.createStatement(); String sql= "select USERID from USERTABLE where USERID = '" + inputUserid + "' and PASSWORD = '" + inputPwd +"' ;" ; ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { returnString = rs.getString("USERID"); } stmt.close(); con.close(); return returnString ; } | 如何设置application 变量
application变量是对一个web application有效的全局变量,在保存一些全局有效的值时非常有用。与session变量不同,application变量可以用application.getAttribute()和application.setAttribute()来访问。
在JSP中,可以自动引用application变量,指代当前的web 应用。
在引用application 变量时,必须使用同步。并且,需要测试一个application属性是否已经存在。请仔细研究下面的代码,在下面,设置了一个叫"change"的application 属性,保存一个整型值。关于在servlet中使用application变量,方法与下面的代码一致,不过,需要先说明一个application如下:
| servletContext application=getServletContext(); | 后面的一段函数是env.Java的片断,可以看看在servlet中如何使用application变量的。
<% Integer count = null; synchronized (application) { count = (Integer) application.getAttribute("change"); if (count == null) count = new Integer(0); count = new Integer(count.intValue() + 1); application.setAttribute("change", count); }
private void printApplication(PrintWriter pw, HttpServletRequest req) throws IOException { ServletContext application = getServletContext(); pw.println("Application Information:"); pw.println(""); pw.print("| Major Version | "); pw.println(application.getMajorVersion()); pw.print(" | | Minor Version | "); pw.println(application.getMinorVersion()); pw.print(" | | Server Info | "); pw.println(application.getServerInfo()); pw.print(" | | Real Path (of pathinfo) | "); pw.println(application.getRealPath(req.getPathInfo())); pw.print(" | | Mime-type (of pathinfo) | "); pw.println(application.getMimeType(req.getPathInfo())); pw.println(" | "); pw.println("Application Variables:"); pw.println(""); Enumeration e = application.getAttributeNames(); while (e.hasMoreElements()) { String name = (String) e.nextElement(); pw.print(""); pw.print(name); pw.print(" | "); pw.println(application.getAttribute(name)); } pw.println(" | "); } %>
Welcome, visitor: <%= count %>
| 如何防止IE缓存jsp文件
1.使用Java提供的方法,在jsp或者servlet中都可以
<% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); %> | 2.使用HTML标记,如下面:
类似于asp中htmlencode函数的jsp函数
public static String asHTML(String text) { if (text == null) return ""; StringBuffer results = null; char[] orig = null; int beg = 0, len = text.length(); for (int i = 0; i < len; ++i) { char c = text.charAt(i); switch (c){ case 0: case '&': case '<': case '>': case '"': if (results == null) { orig = text.toCharArray(); results = new StringBuffer(len+10); } if (i > beg) results.append(orig, beg, i-beg); beg = i + 1; switch (c) { default: // case 0: continue; case '&': results.append("&"); break; case '<': results.append("<"); break; case '>': results.append(">"); break; case '"': results.append("""); break; } break; } } if (results == null) return text; results.append(orig, beg, len-beg); return results.toString(); }
|
|
|