当前位置:编程学习 > JAVA >>

JavaOOP 问题求解答





要求:
1、 创建User类保存固定的用户信息,不可以将用户信息直接保存在JSP中;
2、 实现登录和登录后显示用户信息;登录成功后URL要显示为图2所示的效果;登录失败后URL要显示为图1所示的效果;
3、 页面跳转无异常;
4、 使用纯Java的方式连接数据库
a) JDBC驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
b) JDBC URL:jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=exam
Java --------------------编程问答-------------------- java如何获取子网掩码 --------------------编程问答--------------------
引用 1 楼 oh_Maxy 的回复:
java如何获取子网掩码

对不住啊,帖子开多了,不小心回错地方了。。。 --------------------编程问答-------------------- 既然来了,就留下点什么吧!
最近看Ajax,感觉有个样例和LZ的要求差不多,不过需要自己再改改了。。
登录页面:

<html>
  <head>
    <title>注册用户唯一属性检查</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>
  <script type="text/javascript">
   var xmlHttp;
  
   //创建XMLHttpRequest
   function createXMLHttpRequest(){
   if(window.ActiveXObject){
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   else if(window.XMLHttpRequest){
     xmlHttp = new XMLHttpRequest();
   }
   }
  
   //启动AJAX异步动心方法
   function beginCheck(){
   var tempLoginName = document.all.loginName.value;
   if(tempLoginName == ""){
     alert("请输入注册名!");
     return;
   }
  
   createXMLHttpRequest();
   //状态触发器绑定到函数
   xmlHttp.onreadystatechange = processor;
   //通过get方法向指定URL建立服务器的调用
   xmlHttp.open("GET","CheckUser?loginName="+tempLoginName);
   //发送请求
   xmlHttp.send(null);
   }
  
   //处理状态改变的函数
   function processor(){
   var responseContex;
   if(xmlHttp.readyState == 4){//响应完成
     if(xmlHttp.status == 200){//返回成功
       responseContex = xmlHttp.responseText;
       if(responseContex.indexOf("true")!=-1){
         alert("恭喜,该注册名有效");
       }
       else{
         alert("注册名被占用!");
       }
     }
   }
   }
  </script>
  <body>
    <form name="form1" action="CheckUser" method="POST">
          请输入用户名:
     <input name="loginName" type="text" id="loginName">
     <input type="button" name="checkLoginName" value="有效性检查" onclick="beginCheck()">
    </form>
  </body>
</html>

上面的是校验用户名是否被占用的,LZ稍微改改。
后台的Servlet:

public class CheckUser extends HttpServlet
{
    public void destroy()
    {
        super.destroy();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        String[] logined = {"admin","users","Tom","Jerry"};
        String loginName = req.getParameter("loginName");
        String responseContex = "true";
        for(int i =0;i<logined.length;i++)
        {
            if(loginName.equals(logined[i]))responseContex = "false";
        }
        out.println(responseContex);
        out.flush();
        out.close();
    }

    @Override
    public void init()
        throws ServletException
    {
    }
}

这里不涉及jdbc的操作,后面给你个jdbc的样例。
下面是Servlet的配置文件,配置,在web.xml下追加配置:

<servlet>
<servlet-name>CheckUser</servlet-name>
<servlet-class>com.ajax.CheckUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckUser</servlet-name>
<url-pattern>/CheckUser</url-pattern>
</servlet-mapping>

以上配置好了就可以实现简单的跳转(来自《精通java Web 整合开发》)。
下面是jdbc的样例,LZ调整下,插入到适当的位置:

public class TestSQLServerDriver {
public static void main(String[] args) {
String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=exam";
String user = "username";
String password = "u";
try {
// Load the driver (registers itself)
// 需要导入SQLServer驱动jar包:sqljdbc.jar
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection c = DriverManager.getConnection(dbUrl, user, password);
c.setAutoCommit(false);
Statement s = c.createStatement();
// SQL code:
ResultSet r = s.executeQuery("SELECT * FROM mytable");//sql自己改改吧~
while (r.next()) {
// Capitalization doesn't matter:
System.out.println(r.getString("row1") + ", "
+ r.getString("row2");
}
s.close(); // Also closes ResultSet
c.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
--------------------编程问答-------------------- 都不用数据库的更容易了,
学过servlet没有,不然就用一个jsp页面接收吧,把用户名和密码发过去验证,比如验证:如果name.equal(“admin”)的话就跳转到显示信息页面,那么就是错误,可以跳到登陆页面
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,