java ajax登录界面代码_Java Web 利用Ajax,servlet实现简单的用户注册验证功能

1、新建jsp页面Register.jsp,添加如下页面代码:

用户名

type = 'text' name = 'username' id = 'username' onblur = ''

/>

id = 'usernamediv' name =

'usernamediv'>

密码

type = 'password' name = 'password' id = 'password'

/>

邮箱

type = 'text' name = 'mailbox' id = 'mailbox'

/>

姓名

type = 'text' name = 'name' id = 'name'

/>

type = 'button' value = '注册' onclick = 'checkusername();'

/>

type = 'reset' value = '重置' />

2、编写ajax代码,在jsp页面的

中增加脚本代码:

3、编写servlet类,新建RegisterCheckServlet,重写doGet()和doPost()方法,在doPost()中添加如下代码:

protected void doPost(HttpServletRequest

request, HttpServletResponse response)

throws

ServletException, IOException {

//设置向前台ajax传中文乱码的问题

response.setContentType("text/xml;charset=UTF-8");

response.setHeader("Cache-Control",

"no-cache");

response.setCharacterEncoding("UTF-8");

ResultSet rs = null;

String sql = null;

Exesql exesql = new

Exesql();

PrintWriter out =

response.getWriter();

//接收传入servlet的参数

String flag =

(String)request.getParameter("flag");

if

(flag.equals("uname")){

//1.如果传入的是校验用户名,从数据库表中取出值进行是否重复判断

try {

String

username = (String)request.getParameter("username");

//处理接收中文

username=new

String(username.getBytes("iso-8859-1"),"utf-8");

sql

= "select 1 from userlist where username = '"+username+"'";

rs

= exesql.querysql(sql);

if

(rs.next()){

System.out.println("用户名校验:已存在用户名");

out.print("重复");

}else{

System.out.println("用户名校验:OK!");

out.print("OK");

}

} catch

(SQLException e) {

//

TODO Auto-generated catch block

e.printStackTrace();

}

}else if

(flag.equals("mailbox")) {

//2.如果传入的是邮箱,查询是否有重复的邮箱

String

mailbox = request.getParameter("mailbox");

sql = "select

1 from userlist where mailbox = '"+mailbox+"'";

}else if (flag.equals(""))

{

}

}

在doGet()中添加:

protected void doGet(HttpServletRequest

request, HttpServletResponse response)

throws

ServletException, IOException {

this.doPost(request,

response);

}

4、配置servlet的xml文件:

RegiterCheckServlet

RegiterCheckServlet

com.login.RegisterCheckServlet

RegiterCheckServlet

/RegiterCheckServlet

5、用到的其他类如下:

(1)Conn类:

public class Conn {

//取得与数据库之间的连接

public Connection connorcl() {

String url = null;

String username = null,password

= null;

Connection conn = null;

try{

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

url =

"jdbc:oracle:thin:@10.117.192.132:1521:orcl";

System.out.println("开始建立连接....");

username =

"book";

password =

"book";

System.out.println("开始建立连接..");

conn =

DriverManager.getConnection(url, username, password);

if (conn !=

null){

System.out.println("连接成功");

}

}catch(Exception e)

{

System.out.println(e.getMessage());

}

return conn;

}

}

(2)Exesql类:

public class Exesql {

//执行查询sql

public ResultSet querysql(String sql){

//定义变量

Conn conn = new Conn();

Statement stmt = null;

ResultSet rs =null;

//执行sql

try {

//与数据库建立连接

Connection

connection = conn.connorcl();

stmt =

connection.createStatement();

rs =

stmt.executeQuery(sql);

} catch (SQLException e)

{

// TODO

Auto-generated catch block

e.printStackTrace();

}

return rs;

}

//执行插入、更新sql

public int insertsql(String sql){

//定义变量

Conn conn = null;

Statement stmt = null;

int rs = 0;

//与数据库建立连接

Connection connection =

conn.connorcl();

//执行sql

try {

stmt =

connection.createStatement();

rs =

stmt.executeUpdate(sql);

} catch (SQLException e)

{

// TODO

Auto-generated catch block

e.printStackTrace();

}

return rs;

}

}

笔记:在编写过程中,关于中文字符乱码的问题困扰了许久,最终采用了在servlet接收端进行字符转换的方法得到解决。Ajax异步调用真的挺有意思,需要好好学习。同时学习了如何用firefox浏览器debug页面中js脚本。本次ajax调用方法是点注册进行调用,其实也可以在文本框失去焦点是触发ajax,进行调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Java的校友信息管理系统代码,主要分为前端和后端两部分。 前端界面部分主要使用HTML、CSS、JavaScript等技术实现,通过Bootstrap等框架进行美化和响应式布局,以便能够适应各种设备大小和分辨率。通过JavaScript实现表单校验和ajax交互等功能,以提高用户交互体验和系统性能。 后端代码部分主要使用Java语言开发,使用Spring框架进行MVC模式的开发,使用MyBatis进行数据访问,实现与数据库的交互。在数据层面上,采用数据库连接池技术,优化连接性能,提高系统访问速度和稳定性。 在校友管理方面,系统主要包含如下功能模块:注册、登录、信息浏览、信息修改、信息删除、信息查询等。其中,注册和登录模块通过安全验证机制,提高系统安全性;信息查询模块支持根据姓名、年级、专业、班级等参数进行检索,以方便用户查找和管理。同时,在用户界面上增加了数据可视化展示等功能,以方便用户进行数据分析和决策。 系统特色:本系统基于Java编写,采用Spring+MyBatis技术架构,实现了高效稳定的数据交互和管理。同时,为提高用户体验,使用了Bootstrap等美化框架和JavaScript技术。系统界面简洁清新,操作简单直观,同时支持多种设备的访问和自适应布局。系统保证数据的安全性和完整性,能够有效提高校友管理的效率和便捷程度,是一款实用性和易用性兼备的校友信息管理系统。 ### 回答2: 基于Java的校友信息管理系统采用MVC架构,分为视图层(View)、控制层(Controller)和模型层(Model)。模型层负责数据的增删改查,控制层负责调用模型层并将数据传给视图层展示。 系统采用MySQL数据库存储数据,使用JDBC实现与数据库的交互。主要实现功能包括校友信息的录入、修改、删除和查找。 校友信息包括姓名、性别、出生日期、联系方式、工作单位等信息。录入和修改信息时需要进行各项信息的校验,保证数据的正确性和完整性。同时,系统支持按照不同条件进行查找,如按姓名、单位、毕业年份等。 在设计视图层时,采用Java Swing框架搭建一个简单的用户界面,方便用户进行操作。 除了基本功能,系统还加入了团员管理、活动通知和论坛讨论等功能,提供更多的服务内容。 该校友信息管理系统代码需要使用JDK1.8及以上版本,并配合使用MySQL数据库。代码结构清晰,易于理解和维护,可以作为Java基础和数据库应用的实践项目。 ### 回答3: 基于Java的校友信息管理系统代码具有一定的复杂性和规模,通常包括系统的前端界面、后端逻辑和数据库的设计与管理。以下是一个基本的校友信息管理系统的代码架构: 1. 前端界面设计:使用Java Swing等UI组件,以及HTML、CSS、JavaScript等Web前端技术,构建一个用户友好的图形界面,实现校友信息的展示、修改与查询等功能。 2. 后端逻辑处理:利用Java ServletJSP等技术,实现系统与用户之间的数据交互,包括用户请求的响应、数据校验和处理、业务逻辑的实现、数据存储和访问等。 3. 数据库设计与管理:使用MySQL等关系型数据库,设计结构化的数据表和表间关系,存储和管理校友的基本信息和活动记录等数据。 整个系统的代码需要有良好的模块化和可扩展性,以满足未来的需求变更和功能扩展。对于Java开发人员来说,需要具备扎实的Java编程基础、熟练掌握相关的框架和技术,以及良好的软件设计和开发思维。同时,也需要考虑系统的安全性、可靠性、可用性和易用性等方面,以提供优质的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值