基于java+jsp+ssh的毕业生就业信息管理系统

🍅文末获取源码联系🍅

👇🏻 精彩项目推荐订阅👇🏻 不然下次找不到哟

 

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人哦

5adc8a96b8af4ed1b20309bd8879b935.png

 

系统介绍

        随着高校教育体制的改革大学生人数的不断增加,毕业生就业制度发生了根本的变化。单位和学生走向人才市场,双向选择,择优录用。因此在这样的情况下,在INTERNET上开发并运行信息管理系统就能够极大地提高工作效率,弥补了用人单位和学生在时间和空间上的不足。

        本毕业设计的内容是设计并且实现一个基于web技术的毕业生就业信息管理系统,故而系统主要以j2EE作为开发基础,主要使用了struts2+spring+hibernate等多种框架的结合使用,用myeclipse作为开发工具,以MYSQL作为数据库,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。

系统开发的思想与技术

JSP技术与MVC模式以及系统的基本框架

        本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。

 S.S.H框架的优点

        

S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:

Struts2框架

        Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。

c62cbbbed5eb4c95b1dbe5b1f2d0be51.png

Spring框架

        Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。

Spring框架由图2-2所示的7个部分组成:

78204ebcb2db46d8857f81d487707403.png

 

Hibernate框架

        Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。

06ab0e7ec0d348b7bd291190e4061c61.png

系统总体设计

总体功能模块

本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。

40c2984d844c4c18a64f8ee3a1631e39.png

系统管理员功能模块

        系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。

dfd231d223a94d0583abfa7bb0d09cb7.png

老师用户功能模块

        老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。

ab4e9e9d0f194f8188d8f81a345c5862.png

企业用户功能模块

        企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。

d7588f5761374ec3b6289baf10ebbccf.png

毕业生用户功能模块

        毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。

f77fedbcde1f44bbb5f9c242c1b78ad8.png

系统业务描述

        本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。

4681d995e7dc4ef4afaadc911284d14a.png

系统详细设计与实现

系统和数据库的配置

        系统按通用的B/S(浏览器、服务器)模式进行设计

8f80458bf62146c997a19d53090e6aaf.jpeg

        数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

概念模型设计

        概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R图如下:

72ec9eda04924b278c07f649a8023a90.jpeg

系统配置代码展示

hibernate配置文件

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>

		
		 <!-- Database connection settings -->
	  	<property name="proxool.pool_alias">DBPool</property>
		<property name="proxool.xml">proxool.xml</property>
		<property name="connection.provider_class">
			org.hibernate.connection.ProxoolConnectionProvider
		</property>
       
       
		
		
		 <!-- Echo all executed SQL to stdout -->
	  
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
	
		
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		
		
		  <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
		 
		 
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		

		<mapping class="model.User"/>
		<mapping class="model.Xinwen"/>
		<mapping class="model.Zhiwei"/>
		<mapping class="model.Jianli"/>
		<mapping class="model.Toudijilu"/>
		<mapping class="model.Wendang"/>
		<mapping class="model.Gonggao"/>
		<mapping class="model.Liuyan"/>
		<mapping class="model.Jiuye"/>
		
		<mapping class="model.Xi"/>
		<mapping class="model.Zhuanye"/>
		
	
		
		
	</session-factory>
</hibernate-configuration>

struts配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<constant name="struts.objectFactory" value="spring" />
	<constant name="struts.i18n.encoding" value="UTF-8" />

	

	 <package name="index" namespace="/" extends="struts-default">
	 
	 	<action name="index" method="index" class="manageAction" >
           <result  name="success1">index.jsp</result>
           <result  name="success2">login.jsp</result>
        </action>
	 
		<action name="method" class="manageAction">
			<result type="dispatcher">${url}</result>
			<result name="redirect" type="redirect">${url}</result>
		</action>
        
    </package>
	

</struts>

Spring配置文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	
	<!--           daos          -->
	<bean id="userDao" class="dao.impl.UserDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="xinwenDao" class="dao.impl.XinwenDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="zhiweiDao" class="dao.impl.ZhiweiDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="jianliDao" class="dao.impl.JianliDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="toudijiluDao" class="dao.impl.ToudijiluDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	
	<bean id="wendangDao" class="dao.impl.WendangDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="gonggaoDao" class="dao.impl.GonggaoDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="liuyanDao" class="dao.impl.LiuyanDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="jiuyeDao" class="dao.impl.JiuyeDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="xiDao" class="dao.impl.XiDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	<bean id="zhuanyeDao" class="dao.impl.ZhuanyeDaoImpl" >
		<property name="sessionFactory"><ref bean="sessionFactory" /></property>
	</bean>
	
	
	
</beans>
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	
	
	<bean id="manageAction" class="action.ManageAction" scope="prototype">

		<property name="userDao"><ref bean="userDao" /></property>
		<property name="xinwenDao"><ref bean="xinwenDao" /></property>
		<property name="zhiweiDao"><ref bean="zhiweiDao" /></property>
		<property name="jianliDao"><ref bean="jianliDao" /></property>
		<property name="toudijiluDao"><ref bean="toudijiluDao" /></property>
		<property name="wendangDao"><ref bean="wendangDao" /></property>
		<property name="gonggaoDao"><ref bean="gonggaoDao" /></property>
		<property name="liuyanDao"><ref bean="liuyanDao" /></property>
		<property name="jiuyeDao"><ref bean="jiuyeDao" /></property>
		<property name="xiDao"><ref bean="xiDao" /></property>
		<property name="zhuanyeDao"><ref bean="zhuanyeDao" /></property>
		
		
	</bean>
	
	
	
	
	
</beans>
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	     xmlns:aop="http://www.springframework.org/schema/aop"
	     xmlns:tx="http://www.springframework.org/schema/tx"
	     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	<!-- 配置sessionFactory -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="configLocation">
			<value>classpath:hibernate.cfg.xml</value>
		</property>	
	</bean>           
	
	<!-- 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
		</property>	
	</bean>
	
	<!-- 配置事务的传播特性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED"/>
			<tx:method name="delete*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="*" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 那些类的哪些方法参与事务 -->
	<aop:config>
		<aop:pointcut id="allManagerMethod" expression="execution(* dao.*.*(..))"/>
		<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
	</aop:config>
	
</beans>

系统功能实现的主要模块

登录页面

55266d17159d4e1cbc3e4e4672ef74d8.png

public String login()throws IOException{
		HttpServletRequest request=ServletActionContext.getRequest();
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String role=request.getParameter("role");
		User user=userDao.selectBean("where username='"+username+"'and								password='"+password+"'and userlock=0 and role="+role);
		if(user!=null){
			HttpSession session=request.getSession();
			session.setAttribute("user",user);
			this.setUrl("index");
			return"redirect";
		}else{
			HttpServletResponse response=ServletActionContext.getResponse();
			response.setCharacterEncoding("gbk");
			response
					getWriter()
					print(
"<script language=javascript>alert('用户名或者密码错误');window.location.href='login.jsp';</script>");
		}
		return null;
	}

        本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码还有用户的登陆角色,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。

注册页面

b6b1d84eb16a4aa4a6a8738e79efd9e3.png

//企业用户注册操作
	public void register()throws Exception{
		HttpServletRequest request=ServletActionContext.getRequest();	
		HttpServletResponse response=ServletActionContext.getResponse();	
		String username=java.net.URLDecoder.decode(request.getParameter("username"),"utf-8");
		User user=userDao.selectBean("where username='"+username+"'and userlock=0");
		if(user==null){
			user=new User();
			user.setUsername(username);
			user.setPassword(request.getParameter("password"));
	user.setTruename(java.net.URLDecoder.decode(request.getParameter("truename"),"utf-8"));
	user.setQiyedizhi(java.net.URLDecoder.decode(request.getParameter("qiyedizhi"),"utf-8"));		user.setQiyelianxidianhua(java.net.URLDecoder.decode(request.getParameter("qiyelianxidianhua"),"utf-8"));
user.setQiyemingchen(java.net.URLDecoder.decode(request.getParameter("qiyemingchen"),"utf-8"));	user.setFarendaibiao(java.net.URLDecoder.decode(request.getParameter("farendaibiao"),"utf-8"));		user.setCongshihangye(java.net.URLDecoder.decode(request.getParameter("congshihangye"),"utf-8"));			user.setQiyequyu(java.net.URLDecoder.decode(request.getParameter("qiyequyu"),"utf-8"));
			user.setCreatetime(new Date());
			user.setRole(1);
			userDao.insertBean(user);	
			response.setCharacterEncoding("utf-8");
			response.getWriter().write("注册新用户成功!您的用户名"+user.getUsername()+",请妥善保管!");
		}else{
			response.setCharacterEncoding("utf-8");
			response.getWriter().write("该用户名已经存在,请重新注册!");
		}
	}

        本段代码是程序的注册代码,首先从获取从页面获取注册的信息,同时新建一个User对象,把从页面获取的信息都写在USER对象里面。同时在插入到数据库之前先调用userDao.selectBean("where username='"+username+"'and userlock=0");方法,验证下该用户名在数据库中是否存在,如果不存在,则调用userDao.insertBean(bean);方法,把该条记录写入数据库,如果该条记录存在,则返回到注册页面,同时提醒用户该用户已经注册,请不要重复注册。

系统管理员主页面

c19cd37bd1b54b858947c1d7a0e3bed8.png

//程序入口界面
	public String index(){
		HttpServletRequest request=ServletActionContext.getRequest();
		HttpSession session=request.getSession();
		User user=(User)session.getAttribute("user");
		if(user==null){
			return"success2";
		}else{
			return"success1";
		}
	}

        本段代码是主页面代码,判断用户的session的值是否为空,为空则跳转到登陆界面,不为空则根据session的值的不同跳转到不同的主页。

教师用户管理主页面

4f7150a9f1874e33a4223d99882e0ce4.png

//老师管理员列表
	public String userlist(){
		HttpServletRequest request=ServletActionContext.getRequest();
		String username=request.getParameter("username");
		String truename=request.getParameter("truename");
		StringBuffer sb=new StringBuffer();
		sb.append("where");
		if(username!=null&&!"".equals(username)){
			sb.append("username like'%"+username+"%'");
			sb.append("and");
			request.setAttribute("username",username);
		}
		if(truename!=null&&!"".equals(truename)){
			sb.append("truename like'%"+truename+"%'");
			sb.append("and");
			request.setAttribute("truename",truename);
		}		
		sb.append("userlock=0 and role=3 order by id desc");
		String where=sb.toString();
		int currentpage=1;
		int pagesize=10;
		if(request.getParameter("pagenum")!=null){
			currentpage=Integer.parseInt(request.getParameter("pagenum"));
		}
		int total=userDao.selectBeanCount(where);
		request.setAttribute("list",userDao.selectBeanList((currentpage-1)
				*pagesize,pagesize,where));
		request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
				currentpage,"method!userlist","共有"+total+"条记录"));
		request.setAttribute("url","method!userlist");
		request.setAttribute("url2","method!user");
		request.setAttribute("title","老师管理员管理");
		this.setUrl("user/userlist.jsp");
		return SUCCESS;
	}

        首先通过String username=request.getParameter("username")和Stringtruename=request.getParameter("truename");这句代码从页面获取查询的选项,然后通过if(username!=null&&!"".equals(username))和if(truename!=null&&!"".equals(truename))语句,通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过userDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("user/userlist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该老师用户列表页面定义了对老师信息的增加,修改,删除等操作。

就业情况查询管理主页面

ff70d90e03054dc9b7f8a7eb26061d88.png

//就业情况查询
	public String jiuyelist(){
		HttpServletRequest request=ServletActionContext.getRequest();
		String truename=request.getParameter("truename");
		String jiuyefenbu=request.getParameter("jiuyefenbu");
		String xingbie=request.getParameter("xingbie");
		String congshihangye=request.getParameter("congshihangye");
		String zhuanye=request.getParameter("zhuanye");
		StringBuffer sb=new StringBuffer();
		sb.append("where");
		StringBuffer sb2=new StringBuffer();
		sb2.append("where");
		if(truename!=null&&!"".equals(truename)){
			sb.append("user.truename like'%"+truename+"%'");
			sb.append("and");
			sb2.append("user.truename like'%"+truename+"%'");
			sb2.append("and");
			request.setAttribute("truename",truename);
		}
		if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){
			sb.append("jiuyefenbu like'%"+jiuyefenbu+"%'");
			sb.append("and");
			sb2.append("jiuyefenbu like'%"+jiuyefenbu+"%'");
			sb2.append("and");

			request.setAttribute("jiuyefenbu",jiuyefenbu);
		}
		if(xingbie!=null&&!"".equals(xingbie)){
			sb.append("xingbie like'%"+xingbie+"%'");
			sb.append("and");
			sb2.append("xingbie like'%"+xingbie+"%'");
			sb2.append("and");
			request.setAttribute("xingbie",xingbie);
		}
		if(congshihangye!=null&&!"".equals(congshihangye)){
			sb.append("congshihangye like'%"+congshihangye+"%'");
			sb.append("and");
			sb2.append("congshihangye like'%"+congshihangye+"%'");
			sb2.append("and");
			request.setAttribute("congshihangye",congshihangye);
		}	
		if(zhuanye!=null&&!"".equals(zhuanye)){
			sb.append("user.zhuanye like'%"+zhuanye+"%'");
			sb.append("and");
			sb2.append("user.zhuanye like'%"+zhuanye+"%'");
			sb2.append("and");
			request.setAttribute("zhuanye",zhuanye);
		}
		HttpSession session=request.getSession();
		User user=(User)session.getAttribute("user");
		if("admin".equals(user.getUsername())){
			sb.append("1=1 order by id desc");
			sb2.append("1=1");
		}else{
			sb.append("laoshi.id="+user.getId()+"order by id desc");
			sb2.append("laoshi.id="+user.getId());
		}	
		String where=sb.toString();	
		String where2=sb2.toString();	
		int currentpage=1;
		int pagesize=10;
		if(request.getParameter("pagenum")!=null){
			currentpage=Integer.parseInt(request.getParameter("pagenum"));
		}
		int total=jiuyeDao.selectBeanCount(where2);
	request.setAttribute("list",jiuyeDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));
		request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
				currentpage,"method!jiuyelist","共有"+total+"条记录"));
		request.setAttribute("url","method!jiuyelist");
		this.setUrl("jiuye/jiuyelist.jsp");
		return SUCCESS;
	}

首先通过以下语句:

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

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

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

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

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

这些代码从页面获取查询的选项,然后通过

if(truename!=null&&!"".equals(truename)){

if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){

if(xingbie!=null&&!"".equals(xingbie)){

if(congshihangye!=null&&!"".equals(congshihangye)){

if(zhuanye!=null&&!"".equals(zhuanye)){

通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("jiuye/jiuyelist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该就业信息列表了对就业的打印,导出excel等操作。

区域分布统计主页面

3fbe5f4d2f1b49f4815c0b9a7522ada5.png

//统计列表(区域分布统计)
	public String jiuyelist4()throws IOException{
		HttpServletRequest request=ServletActionContext.getRequest();
		request.setAttribute("xilist",xiDao.selectBeanList(0,999,"where xilock=0"));	
		String banji=request.getParameter("banji");
		String xi=request.getParameter("xi");
		String zhuanye=request.getParameter("zhuanye");
		String nianji=request.getParameter("nianji");
		StringBuffer sb=new StringBuffer();
		sb.append("where");
		StringBuffer sb2=new StringBuffer();
		sb2.append("where");
		if(banji!=null&&!"".equals(banji)){
			sb.append("user.banji like'%"+banji+"%'");
			sb.append("and");
			sb2.append("user.banji like'%"+banji+"%'");
			sb2.append("and");
			request.setAttribute("banji",banji);
		}		
		if(xi!=null&&!"0".equals(xi)){
			Xi x=xiDao.selectBean("where id="+xi);
			sb.append("user.xi like'%"+x.getName()+"%'");
			sb.append("and");
			sb2.append("user.xi like'%"+x.getName()+"%'");
			sb2.append("and");
			request.setAttribute("xi",x.getName());
		}
		if(zhuanye!=null&&!"0".equals(zhuanye)){
			Zhuanye z=zhuanyeDao.selectBean("where id="+zhuanye);
			sb.append("user.zhuanye like'%"+z.getName()+"%'");
			sb.append("and");
			sb2.append("user.zhuanye like'%"+z.getName()+"%'");
			sb2.append("and");
			request.setAttribute("zhuanye",z.getName());
		}	
		if(nianji!=null&&!"".equals(nianji)){
			sb.append("user.nianji like'%"+nianji+"%'");
			sb.append("and");
			sb2.append("user.nianji like'%"+nianji+"%'");
			sb2.append("and");
			request.setAttribute("nianji",nianji);
		}
		HttpSession session=request.getSession();
		User user=(User)session.getAttribute("user");
		if("admin".equals(user.getUsername())){
			sb.append("jiuyefenbu='南方'");
			sb2.append("jiuyefenbu='北方'");		
		}else{
			sb.append("jiuyefenbu='南方'and laoshi.id="+user.getId());
			sb2.append("jiuyefenbu='北方'and laoshi.id="+user.getId());
		}		
		int count1=jiuyeDao.selectBeanCount(sb.toString());
		int count2=jiuyeDao.selectBeanCount(sb2.toString());		
		int count3=count1+count2;		
		DefaultCategoryDataset dataset=new DefaultCategoryDataset();
		dataset.addValue(((double)count1/count3)*100,"南方就业","南方就业"+count1+"人");
		dataset.addValue(((double)count2/count3)*100,"北方就业","北方就业"+count2+"人");
		JFreeChart chart=ChartFactory.createBarChart3D(null,"区域分布","百分比(%)",dataset,PlotOrientation.VERTICAL,true,false,false);		
			//柱状图(CategoryPlot):
		CategoryPlot plot=chart.getCategoryPlot();
			//获取图表区域对象
		CategoryAxis domainAxis=plot.getDomainAxis();
			//水平底部列表
		domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));
			//水平底部标题
		domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));
			//垂直标题
		ValueAxis rangeAxis=plot.getRangeAxis();
			//获取柱状
		rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));
		chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,15));		
		String s=new Date().getTime()+"";
		request.setAttribute("time",s);	
		String savaPath=ServletActionContext.getServletContext().getRealPath(
			"/")
			+"/uploadfiles/"+s+".png";		
		ChartUtilities.saveChartAsPNG(new File(savaPath),chart,600,400);
		this.setUrl("jiuye/jiuyelist4.jsp");
		return SUCCESS;
	}

统计的图标表示主要通过jfreechart组件来完成的。首先通过以下方法:

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

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

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

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

这句代码从页面获取查询的选项,,然后通过:

if(banji!=null&&!"".equals(banji)){

if(xi!=null&&!"".equals(xi)){

if(zhuanye!=null&&!"".equals(zhuanye)){

if(nianji!=null&&!"".equals(nianji)){

通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在把取出来得数据库通过jfreechart组件生成对应的图片,通过this.setUrl("jiuye/jiuyelist4.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据统计功能的实现。

岗位管理主页面

950830754f79484cb2e37e4aa44fa7be.png

//岗位列表
	public String zhiweilist(){
		HttpServletRequest request=ServletActionContext.getRequest();
		String zhiweimingchen=request.getParameter("zhiweimingchen");
		String zhiweileibie=request.getParameter("zhiweileibie");
		StringBuffer sb=new StringBuffer();
		sb.append("where");
		StringBuffer sb2=new StringBuffer();
		sb2.append("where");
		if(zhiweimingchen!=null&&!"".equals(zhiweimingchen)){
			sb.append("zhiweimingchen like'%"+zhiweimingchen+"%'");
			sb.append("and");
			sb2.append("zhiweimingchen like'%"+zhiweimingchen+"%'");
			sb2.append("and");
			request.setAttribute("zhiweimingchen",zhiweimingchen);
		}		
		if(zhiweileibie!=null&&!"".equals(zhiweileibie)){
			sb.append("zhiweileibie like'%"+zhiweileibie+"%'");
			sb.append("and");
			sb2.append("zhiweileibie like'%"+zhiweileibie+"%'");
			sb2.append("and");
		request.setAttribute("zhiweileibie",zhiweileibie);
		}
		HttpSession session=request.getSession();
		User user=(User)session.getAttribute("user");	
		sb.append("zhiweilock=0 and zhiweifaburen.id="+user.getId()+"order by id desc");
		String where=sb.toString();
		sb2.append("zhiweilock=0 and zhiweifaburen.id="+user.getId());
		String where2=sb2.toString();		
		int currentpage=1;
		int pagesize=10;
		if(request.getParameter("pagenum")!=null){
			currentpage=Integer.parseInt(request.getParameter("pagenum"));
		}
		int total=zhiweiDao.selectBeanCount(where2);
	request.setAttribute("list",zhiweiDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));
		request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,
				currentpage,"method!zhiweilist","共有"+total+"条记录"));
		request.setAttribute("url","method!zhiweilist");
		request.setAttribute("url2","method!zhiwei");		
		this.setUrl("zhiwei/zhiweilist.jsp");
		return SUCCESS;
	}

        首先通过String zhiweimingchen=request.getParameter("zhiweimingchen")和String zhiweileibie=request.getParameter("zhiweileibie");这句代码从页面获取查询的选项,再用if(zhiweimingchen!=null&&!"".equals(zhiweimingchen))if(zhiweileibie!=null&&!"".equals(zhiweileibie)),通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过zhiweiDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("zhiwei/zhiweilist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该岗位列表页面定义了对岗位信息的增加,修改,删除等操作。

总结

        毕业生就业问题是大学毕业生至关重要的问题,每个合格的大学毕业生都都将就业途径视为命脉,而“毕业生就业信息管理系统”正是提供这种途径的最佳方式之一,具有极度的应用价值与实用性。

源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

关注公众号《编程乐学》,后台回复:24012721 自动回复

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值