用户登录验证的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();
}

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3