定义一个简单的JAVABEAN;
我是用exlipse编写的,这里没有导包的功能,只能把内容列这里了,用到的技术有:servlete,hibernate
mysql,用HTML编写的映射文档;
package model;
public class User {
private int id;
private String username;
private String password;
private String realName;
private String sex;
private String school;
private String address;
private String email;
private String phone;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
//建立User类到数据库的映射

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class name="User" table="user">
<id name="id">
<generator class="identity" />
</id>
<property name="username" length="10" not-null="true" unique="true"/>
<property name="password" length="10" not-null="true" />
<property name="realName" not-null="true" />
<property name="sex" not-null="true" />
<property name="school" />
<property name="address" />
<property name="email" />
<property name="phone" />
</class>
</hibernate-mapping>

 

 

//用监听器实现hibernate的配置


package control;
import java.io.File;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SessionFactoryListener implements ServletContextListener {
public static final String SESSION_FACTORY_KEY = "hibernate_session_factory";
public static final String CONFIG_FILE_KEY = "configuration-file";
@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext sc = event.getServletContext();
String filename = sc.getInitParameter(CONFIG_FILE_KEY);
SessionFactory sf = null;
if (filename == null) {
Configuration config = new Configuration().configure();
sf = config.buildSessionFactory();
} else {
Configuration config = new Configuration().configure(new File(sc.getRealPath(filename)));
sf = config.buildSessionFactory();
}
if (sf != null) {
sc.setAttribute(SESSION_FACTORY_KEY, sf);
}
}
@Override
public void contextDestroyed(ServletContextEvent event) {
ServletContext sc = event.getServletContext();
SessionFactory sf = (SessionFactory) sc.getAttribute(SESSION_FACTORY_KEY);
if (sf != null)
sf.close();
}
}

 

//如下代码实现了接收请求以及做出的部分回应,写得有点乱,功能没有独立开,不过不想改了;

 




package control;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import view.SuccessView;
import model.User;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = -154176561953216931L;
private static final String USERNAME_PARAMETER = "username";
private static final String PASSWORD_PARAMETER = "password";
private static final String SEX_PARAMETER="sex";
private static final String REALNAME_PARAMETER="realName";
private static final String SCHOOL_PARAMETER="school";
private static final String ADDRESS_PARAMETER="address";
private static final String EMAIL_PARAMETER="email";
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
SessionFactory sf = (SessionFactory) this.getServletContext().getAttribute(SessionFactoryListener.SESSION_FACTORY_KEY);
Session session = null;
try {
session  = sf.openSession();
User user=new User();
String username=new String(req.getParameter(USERNAME_PARAMETER).getBytes("ISO-8859-1"),"UTF-8");
user.setUsername(username);
user.setPassword(req.getParameter(PASSWORD_PARAMETER));
String sex=new String(req.getParameter(SEX_PARAMETER).getBytes("ISO-8859-1"),"UTF-8");
user.setSex(sex);
String realName=new String(req.getParameter(REALNAME_PARAMETER).getBytes("ISO-8859-1"),"UTF-8");
user.setRealName(realName);
String school=new String(req.getParameter(SCHOOL_PARAMETER).getBytes("ISO-8859-1"),"UTF-8");
user.setSchool(school);
String address=new String(req.getParameter(ADDRESS_PARAMETER).getBytes("ISO-8859-1"),"UTF-8");
user.setAddress(address);
user.setEmail(req.getParameter(EMAIL_PARAMETER));
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
if (user.getUsername().trim().length()!=0)
new LoginServlet().outputSucceed(resp, user);
else
new LoginServlet().outputFailed(resp);
} catch (Exception e) {
e.printStackTrace();
outputError(resp);
} finally {
session.close();
}
}
private void outputSucceed(HttpServletResponse resp, User user) throws Exception {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("<fieldset>");
pw.println("<legend>用户信息</legend>");
pw.println("<label>您好:</label>" + user.getUsername() + "<br/>");
pw.println("恭喜您注册成功!");
pw.println("</fieldset>");
pw.println("</body>");
pw.println("</html>");
new SuccessView().loginSucceed(resp);
}
public  void outputFailed(HttpServletResponse resp) throws IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("无效的用户名或密码!");
pw.println("<hr/>");
pw.println("<a href=/"index.html/">返回首页</a>");
pw.println("</body>");
pw.println("</html>");
}
private void outputError(HttpServletResponse resp) throws IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("用户名重复,请重新输入!");
pw.println("<hr/>");
pw.println("<a href=/"index.html/">返回首页</a>");
pw.println("</body>");
pw.println("</html>");
}
}

 

//查询代码,我写得有点复杂,肯定有简单的方式,大家多想想;


还有HTML做的界面,在下面的文章里将给大家列出来.

package control;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.User;
import org.hibernate.* ;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import view.SuccessView;
public class Select extends HttpServlet {
private static final String USERNAME_PARAMETER="username";
User user;
ArrayList<String> list1=null;
ArrayList<String> list2=null;
ArrayList<String> list3=null;
ArrayList<String> list4=null;
ArrayList<String> list5=null;
ArrayList<String> list6=null;
ArrayList<String> list7=null;
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
SessionFactory sf = (SessionFactory) this.getServletContext().getAttribute(SessionFactoryListener.SESSION_FACTORY_KEY);
Session session = null;
try{
session=sf.openSession();
user=new User();
Query query1=session.createQuery("select username from User   where username=?");
query1.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list1=(ArrayList<String>)query1.list();
user.setUsername(list1.get(0));
Query query2=session.createQuery("select realName from User   where username=?");
query2.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list2=(ArrayList<String>)query2.list();
user.setRealName(list2.get(0));
Query query3=session.createQuery("select sex from User   where username=?");
query3.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list3=(ArrayList<String>)query3.list();
user.setSex(list3.get(0));
Query query4=session.createQuery("select school from User   where username=?");
query4.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list4=(ArrayList<String>)query4.list();
user.setSchool(list4.get(0));
Query query5=session.createQuery("select address from User   where username=?");
query5.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list5=(ArrayList<String>)query5.list();
user.setAddress(list5.get(0));
Query query6=session.createQuery("select email from User   where username=?");
query6.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list6=(ArrayList<String>)query6.list();
user.setEmail(list6.get(0));
Query query7=session.createQuery("select phone from User   where username=?");
query7.setParameter(0, req.getParameter(USERNAME_PARAMETER ));
list7=(ArrayList<String>)query7.list();
user.setPhone(list7.get(0));
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw=resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("您所查询的"+user.getRealName()+"个人信息:"+"<br/>");
pw.println("用户名:"+user.getUsername()+"<br/>");
pw.println("真实姓名:"+user.getRealName()+"<br/>");
pw.println("性别:"+user.getSex()+"<br/>");
pw.println("学校:"+user.getSchool()+"<br/>");
pw.println("家庭住址:"+user.getAddress()+"<br/>");
pw.println("邮箱:"+user.getEmail()+"<br/>");
pw.println("联系电话:"+user.getPhone()+"<br/>");
pw.println("</body>");
pw.println("<html>");
}catch(Exception e){
new Select().faild(resp);
}
}
private void faild(HttpServletResponse resp) throws IOException{
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw=resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("您查询的信息不存在!");
pw.println("<a href=/"suceess.do/">返回</a>");
pw.println("</body>");
pw.println("</html>");
}
}

 

 

//只是个登录界面,比较简单,本来我想做个MVC结构的,可是那要好好的组织代码,花得时间太长,只好放弃


package view;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.User;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import control.LoginServlet;
import control.SessionFactoryListener;
public class SuccessView extends HttpServlet {
private static final String USERNAME_PARAMETER="username";
private static final String PASSWORD_PARAMETER="password";
public static final String USER_ENTITY="user";
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
SessionFactory sf = (SessionFactory) this.getServletContext().getAttribute(SessionFactoryListener.SESSION_FACTORY_KEY);
Session session = null;
String username=(String)req.getParameter(USERNAME_PARAMETER);
String password=(String)req.getParameter(PASSWORD_PARAMETER);
try{
if(username.trim().length()!=0){
session=sf.openSession();
Query query = session.createQuery("from User where username= ? and password = ?");
query.setParameter(0, username);
query.setParameter(1, password);
//              req.setAttribute("username",USERNAME_PARAMETER );
User user=(User)query.uniqueResult();
HttpSession hs=req.getSession();
hs.getAttribute(USER_ENTITY);
if(query.uniqueResult() != null){
loginSucceed(resp);
}else{
new LoginServlet().outputFailed(resp);
}
}else{
new LoginServlet().outputFailed(resp);
}
}catch(Exception e){
new LoginServlet().outputFailed(resp);
}finally{
}
}
public  void loginSucceed(HttpServletResponse resp)throws IOException{
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("<label>您好:</label>"  +"欢迎来到网络通讯录!"+ "<br/>");
pw.println("<hr/>");
pw.println("<a href=/"index.html/">返回首页</a>");
pw.println("<form method=/"post/" action=/"select/"");
pw.println("<table>");
pw.println("<tr>");
pw.println("<td>");
pw.println("<input type=/"submit/" name=/"select/" value=/"查询/">");
pw.println("</td>");
pw.println("<td>");
pw.println("<input name=/"username/" type=/"text/" maxlength=/"10/">");
pw.println("</td>");
pw.println("</tr>");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
}
}
												

自己写的一个简单JAVA网络通讯录相关推荐

  1. AndroidSDK开发6我用kotlin协程写了一个简单sdk

    目录 AndroidSDK开发6我用kotlin协程写了一个简单sdk 1.kotlin的依赖和导包如下:(//如果不使用协程可以去掉协程的导包减少sdk包大小) 2.Application代码如下: ...

  2. 使用eNSP搭建一个简单的网络

    使用eNSP搭建一个简单的网络 第一次使用eNSP搭建一个简单的网络,在师傅的耐心讲解及自己的慢慢摸索下最终使得3台PC之间通过静态路由实现了互通. 一.前言 华为现在不知道是在eNSP进行优化还是咋 ...

  3. 最近写了一个简单的面向对象的脚本语言 Q 语言

    最近写了一个简单的面向对象的脚本语言 Q 语言,语法类似于 Javascript, 加入了一些 python 的语法功能. 同时实现了部分的 Javascript prototype 的功能 (个人觉 ...

  4. 自己写的一个简单的android记事本app

    自己写的一个简单的记事本app,效果如下: 一.首先是第一个界面的编写,最上面是一个TextView,中间是一个Linearlayout中嵌套一个listview布局,最下面是一个button.下面附 ...

  5. easy-mock写的一个简单的模拟二页的反馈

    用easy-mock写的一个简单的模拟二页的反馈,因为后端团队比较传统,所以设计的结构不太规范. 功能:每页10条,共2页,共12条记录,超出参数范围会返错误码: easy模板: {code: fun ...

  6. visjs使用小记-1.创建一个简单的网络拓扑图

    1.插件官网:http://visjs.org/  2.创建一个简单的网络拓扑图 <!doctype html> <html> <head><title> ...

  7. getconnection java_在MyEclipse用java写的一个GetConnection1.java,用于连接MySQL,却总是出错。(没有财富值了,见谅!)...

    在MyEclipse用java写的一个GetConnection1.java,用于连接MySQL,却总是出错.求救!!!packageJavaBean1;importjava.sql.*;import ...

  8. 编写一个简单Java程序,计算银行年存款的本息

    编写一个简单Java程序,计算银行年存款的本息 要求:程序运行后要求用户输入存款本金.年利率和存款年限,最后程序计算并输出相应年限后存款的金额.相应的计算公式为:存款总额=本金 * (1 + 利率)存 ...

  9. 【Pytorch分布式训练】在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练

    文章目录 普通单卡训练-GPU 普通单卡训练-CPU 分布式训练-GPU 分布式训练-CPU 租GPU服务器相关 以下代码示例基于:在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练. 普 ...

  10. 用shell脚本写的一个简单的俄罗斯方块

    用shell脚本写的一个简单的俄罗斯方块 代码 代码 测试 下载链接 代码 代码 #!/bin/bash #version 1.2,若非正常退出,请使用附带的killel.sh脚本杀死进程 #定义用于 ...

最新文章

  1. C++对象模型9——临时对象的生命周期、模板及实例化分析、内联函数
  2. POJ2823_Sliding Window
  3. 【Android 组件化】路由组件 ( 使用 JavaPoet 生成路由表类 )
  4. 【EXLIBRIS】随笔记 006
  5. hp服务器重置bmc,HP iLO 登录用户名与 BMC 用户名不一致导致 ipmitool 无法修改用户名...
  6. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
  7. 阿里高德城市大脑·智慧交通战略发布,公共服务版首次亮相!
  8. mysql 数据库连接不够_一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例...
  9. 深度学习多种模型评估指标介绍 - 附sklearn实现
  10. DataStudio 编辑器快捷键列表
  11. html 透明玻璃效果图,CSS3教程实现模糊透明玻璃效果
  12. 3D游戏模型之鼻子的建模
  13. k8s 超详细总结,面试必问
  14. 红牛农场JAVA_JAVA内部类与异常类
  15. 【软件架构】Michael Perry关于不可变架构、CAP定理和CRDTs
  16. 蓝牙5 BR/EDR Baseband层分析
  17. php 字典树实现,数据结构之「字典树」
  18. 云顶之弈5.26服务器维护,云顶之弈手游维护 更新内容一览
  19. 本科应届生应聘大数据开发工程师,有机会吗?
  20. 今日头条信息流 - 广告数据检测与分析思路、提升成交转化率

热门文章

  1. Linux操作系统选择(免费)
  2. ROS语音识别科大讯飞语音SDK
  3. 英语在线听力翻译器_在线翻译英语软件推荐 在线翻译英语软件哪个好
  4. 全网最全sql入门经典
  5. Thingworx入门学习
  6. VC6保姆级图文教程
  7. 蓝牙精确定位技术下的化工厂安全管理系统,蓝牙定位标签-新导智能
  8. JMeter安装详细教程
  9. Ubuntu20.04安装WPS
  10. 安卓电视 TV端的webview网页 按键控制和一些小问题