自己写的一个简单JAVA网络通讯录

 
定义一个简单的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>");

	}

	

	

}
 
//查询代码,我写得有点复杂,肯定有简单的方式,大家多想想;
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>");

	}



}


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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值