j2ee大作业
j2ee大作业

j2ee大作业J2EE论文考核大作业学校:院系:信息技术学院专业:计算机科学与技术姓名:学号:指导老师:一.在以Java技术为基础的Web开发中,前端开发包含哪些技术,后端开发包含哪些技术,各有何特点。
详细论述。
答:前端开发:前端开发技术CSS、HTML、javascript1、CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。
CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
2、HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。
设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。
这样,你只要使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。
HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等。
HTML 的结构包括头部 (Head)、主体 (Body) 两大部分。
头部描述浏览器所需的信息,主体包含所要说明的具体内容。
3、JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
后端开发:Java语言体系比较庞大,包括多个模块。
J2EE大作业

武汉轻工大学数学与计算机学院2019-2020学年第一学期J2EE大作业指导老师: ******** 专业:信息管理与信息系统班级:信管1602班学号: ********** 姓名: *****2019年10月29 日1. 架构概述J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术。
这些技术的出现给电子商务时代的WEB应用程序的开发提供了一个非常有竞争力的选择。
怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。
完成这个步骤可以形成一个主要里程碑基线。
形成这个基线有很多好处:各种因数初步确定为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。
往往架构设计师在这个过程中要阅读大量的技术资料,听取项目组成员的建议,考虑领域专家的需求,考虑赞助商成本(包括开发成本和运行维护成本)限额。
一旦架构设计经过评审,这些因数初步地就有了在整个项目过程中的对项目起多大作用的定位。
定向技术培训一旦架构师设计的架构得到了批准形成了基线,项目开发和运行所采用的技术基本确定下来了。
众多的项目经理都会对预备项目组成员的技术功底感到担心;他们需要培训部门提供培训,但就架构师面对的技术海洋,项目经理根本就提不出明确的技术培训需求。
怎不能够对体系中所有技术都进行培训吧!有了架构里程碑基线,项目经理能确定这个项目开发会采用什么技术,这是提出培训需求应该是最精确的。
不过在实际项目开发中,技术培训可以在基线确定之前与架构设计并发进行。
角色分工有了一个好的架构蓝图,我们就能准确划分工作。
如网页设计,JSP 标签处理类设计,SERVLET 设计,session bean设计,还有各种实现。
这些任务在架构蓝图上都可以清晰地标出位置,使得项目组成员能很好地定位自己的任务。
一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。
JAVA J2EE大作业——学生信息管理系统

JA V A & J2EE大作业——学生信息管理系统/src/beanFind.javapackage bean;import java.io.File;import java.io.IOException;import java.util.Iterator;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Find {public String[] find(String id,String name,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();String[]str=new String[7];int j=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)boolean flagid,flagname;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");int i=0;Element element = (Element) iter.next();flagid=false;flagname=false;//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flagid=true;}elementInner = (Element) iterInner.next();if(elementInner.getText().equals(name)){flagname=true;}if(id!=null&&name!=null){if(flagid&&flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else if(name!=null&&id==null){if(flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}}}else if(id!=null&&name==null){if(flagid){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else{break;}out.print("</tr>");}str[6]=j+"";return str;}}ReadUserInfo.javapackage bean;import java.io.IOException;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.LinkedList;public class ReadUserInfo {//文件中读取出的用户信息LinkedList<String> nameList = new LinkedList<String>();LinkedList<String> passList = new LinkedList<String>();// StringTokenizer相关变量String temp;String[] st;//用来保存用户输入信息String username;String password;public String getUsername(){return username;}public void setUsername(String username){ername = username;}public String getPassword(){return password;}public void setPassword(String password){this.password = password;}public LinkedList<String> getNameList(){return nameList;}public LinkedList<String> getPassList(){return passList;}public void read(String path) throws IOException{File file = new File(path);BufferedReader br = new BufferedReader(new FileReader(file));while ((temp = br.readLine()) != null){st =temp.split(",");nameList.add(st[0]);passList.add(st[1]);}}public boolean checknp(String name,String pass){LinkedList<String> nlist = getNameList();LinkedList<String> plist = getPassList();if(!nlist.contains(name) || !plist.contains(pass)){return false;}if(nlist.indexOf(name) != plist.indexOf(pass)){return false;}return true;}}XmlPage.javapackage bean;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Iterator;import java.util.List;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class XmlPage {public void Edit(String user,String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws DocumentException, IOException {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(user))break;}if(!Id.isEmpty())element.element("id").setText(Id);if(!Name.isEmpty())element.element("name").setText(Name);if(!Age.isEmpty())element.element("age").setText(Age);if(!Gender.isEmpty())element.element("gender").setText(Gender);if(!Email.isEmpty())element.element("email").setText(Email);if(!Java.isEmpty())element.element("java").setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public boolean check(String id,String studentInfoPath) throws DocumentException{SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();boolean flag=true;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){Element element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flag=false;break;}}return flag;}public void add(String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element parent = root.addElement("student");Element id= parent.addElement("id");id.setText(Id);Element name = parent.addElement("name");name.setText(Name);Element age= parent.addElement("age");age.setText(Age);Element gender = parent.addElement("gender");gender.setText(Gender);Element email = parent.addElement("email");email.setText(Email);Element java = parent.addElement("java");java.setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public void Del(String id,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id))break;}root.remove(element);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath), out);writer.write(document);writer.close();}public void Reader(int diPage,int pageFileSize,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();// 用于记录学生编号的变量int num=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");num++;Element element = (Element) iter.next();if(num>=(diPage*pageFileSize-(pageFileSize-1))&&num<=diPage*pageFileSize){//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理for ( Iterator<?> iterInner = element.elementIterator(); iterInner.hasNext(); ){Element elementInner = (Element) iterInner.next();out.print("<th>"+elementInner.getText()+"</th>");}}out.print("</tr>");}}public int Count(String studentInfoPath) throws DocumentException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));List<?> list = document.selectNodes("/students/student");int num = list.size();return num;}}/src/filterAuthorityFilter.javapackage filter;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class AuthorityFilter implements Filter{//FilterConfig可用于访问Filter的配置信息private FilterConfig config;//实现初始化方法public void init(FilterConfig config){this.config = config;}//实现销毁方法public void destroy(){this.config = null;}//执行过滤的核心方法public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)throws IOException,ServletException{//---------下面代码用于对用户请求执行预处理---------//获取ServletContext对象,用于记录日志ServletContext context = this.config.getServletContext();long before = System.currentTimeMillis();System.out.println("开始过滤...");//获取该Filter的配置参数String encoding = config.getInitParameter("encoding");String loginPage = config.getInitParameter("loginPage");String loginServlet = config.getInitParameter("loginServlet");String addsuccess = config.getInitParameter("addsuccess");String changePage = config.getInitParameter("changePage");String changesuccess = config.getInitParameter("changesuccess");String delete = config.getInitParameter("delete");//设置request编码用的字符集request.setCharacterEncoding(encoding);HttpServletRequest requ = (HttpServletRequest)request;HttpSession session = requ.getSession(true);//输出提示信息System.out.println("Filter已经截获到用户的请求的地址:" +requ.getServletPath());System.out.println("user:" +session.getAttribute("user"));//获取客户请求的页面String requestPath = requ.getServletPath();//如果session范围的user为null,即表明没有登录//且用户请求的既不是登录页面,也不是处理登录的页面if( session.getAttribute("user") == null&& !requestPath.endsWith(loginPage)&& !requestPath.endsWith(loginServlet)){request.setAttribute("tip", "nologin");request.getRequestDispatcher("/login.jsp").forward(request, response);}/*else if(requestPath.endsWith(addsuccess)||requestPath.endsWith(changePage)||requestPath.endsWith(changesuccess)||requestPath.endsWith(delete)){request.setAttribute("tip", "stop");request.getRequestDispatcher("/studentInfoDisplay.jsp").forward(request, response);}*///"放行"请求else{chain.doFilter(request, response);}//---------下面代码用于对服务器响应执行后处理---------long after = System.currentTimeMillis();//输出提示信息System.out.println("过滤结束");//输出提示信息System.out.println("请求被定位到" + ((HttpServletRequest) request).getRequestURI() +" 所花的时间为: " + (after - before));System.out.println("Session.tip:"+session.getAttribute("tip"));System.out.println("er:"+session.getAttribute("user"));}}/src/sevrvletLoginServlet.javapackage sevrvlet;import java.io.IOException;import java.io.PrintWriter;import javax.mail.Session;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;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 org.jboss.weld.context.SessionContext;import bean.ReadUserInfo;public class LoginServlet extends HttpServlet {/*** Constructor of the object.*/public LoginServlet() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {ReadUserInfo r = new ReadUserInfo();r.read(request.getSession().getServletContext().getRealPath("")+"\\WEB-INF\\users.txt");String username = request.getParameter("username");String password = request.getParameter("password");HttpSession session = request.getSession(true);//RequestDispatcher dis = null;PrintWriter out = response.getWriter();if(!r.checknp(username,password)){out.print("<script>alert('Wrong username or password');location.href='../login.jsp';</script>");//dis = request.getRequestDispatcher("../login.jsp");}else{session.setAttribute("user", username);System.out.println("LoginServlet tip:"+session.getAttribute("tip"));//out.print("<script>alert('z!');location.href='../index.jsp';</script>");//dis = request.getRequestDispatcher("../studentInfoDisplay.jsp");out.print("<script>location.href='../studentInfoDisplay.jsp';</script>");}//dis.forward(request, response);}/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/public void init() throws ServletException {// Put your code here}}/src/tagIteratorTag.javapackage tag;import java.io.IOException;import java.util.Collection;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class IteratorTag extends SimpleTagSupport {private String collection;private String item;//collection的setter与getter函数public void setCollection(String conllection){this.collection = conllection;}public String getCollection(){return this.collection;}//item的setter与getter函数public void setItem(String item){this.item = item;}public String getItem(){return item;}@Overridepublic void doTag() throws JspException, IOException {// TODO Auto-generated method stubCollection itemlist = (Collection)getJspContext().getAttribute(collection);for(Object itemTemp : itemlist){getJspContext().setAttribute(item, itemTemp);getJspBody().invoke(null);}}/srcmytaglib.tld<?xml version="1.0"encoding="GBK"?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>mytaglib</short-name><!-- 定义该标签库的URI --><uri>/mytaglib</uri><tag><!-- 定义标签名 --><name>iterator</name><!-- 定义标签处理类 --><tag-class>tag.IteratorTag</tag-class><!-- 定义标签体支持JSP脚本 --><body-content>scriptless</body-content><!-- 配置标签属性:collection --><attribute><name>collection</name><required>true</required><fragment>true</fragment></attribute><!-- 配置标签属性:item --><attribute><name>item</name><required>true</required><fragment>true</fragment></attribute></tag></taglib>/WebRootadd.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>添加信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "addsuccess.jsp"method = "post">请输入学生信息:<br><br>姓 名:<input type= "text"name="name"style = "width = 165px;height = 22px;"value=""/><br><br>学 号:<input type= "text"name="id"style= "width = 165px;height = 22px;"value=""/><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=""/><br><br>性 别:<input type= "text"name="gender"style style = "width = 165px;height = 22px;"value=""/><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=""/><br><br>java :<input type= "text"name="java"style= "width= 165px;height = 22px;"value=""/><br><br><input type="submit"value="添加"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>addsuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>find</title></head><body><%//System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");System.out.println(request.getRealPath("/WEB-INF/students.xml")) ;if(Id.isEmpty()||Name.isEmpty()||Age.isEmpty()||Gender.isEmpty() ||Email.isEmpty()||Java.isEmpty()){application.setAttribute("lock", "false");out.print("<script>alert('学生信息未填写完整!');location.href='add.jsp';</script>");}else{if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.add(Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功添加!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='add.jsp';</script>");}}%></body></html>change.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>修改信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "changesuccess.jsp"method = "post"><!-- 并发操作安全性代码 --><%String id=session.getAttribute("id").toString(),name=session.getAttribute("name").toString(),age=session.getAttribute("age").toString(),gender=session.getAttribute("gender").toString(),email=session.getAttribute("email").toString(),java=session.getAttribute("java").toString();%>在要修改处输入修改后信息:<br><br>姓 名:<input type= "text"name="name"style= "width = 165px;height = 22px;"value=<%=name%>><br><br>学 号:<input type= "text"name="id"style = "width = 165px;height = 22px;"value=<%=id %>><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=<%=age %>><br><br>性 别:<input type= "text"name="gender"style = "width = 165px;height = 22px;"value=<%=gender%>><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=<%=email%>><br><br>java :<input type= "text"name="java"style= "width=165px;height = 22px;"value=<%=java%>><br><br><input type="submit"value="更改"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>changesuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"> <title>find</title></head><body><%System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='change.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String user=session.getAttribute("id").toString();String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");%><%if(!Id.equals(user)){if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='change.jsp';</script>");}}else{testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}%></body></html>delete.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>删除</title></head><body><%if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String id=session.getAttribute("id").toString();%><%testBean.Del(id,request.getRealPath("/WEB-INF/students.xml")); %><%application.setAttribute("lock", "false");out.print("<script>alert('成功删除!');location.href='studentInfoDisplay.jsp';</script>");%></body></html>find.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>查找</title></head><body><%-- <% if(request.getAttribute("tip") != null &&。
JAVA课程大作业文档模板

皖西学院JA V A课程期末大作业( 2016 -- 2017 年度第二学期)课程名称:JA V A程序设计题目:备忘录系统院系:电信学院班级:电子1402班组名:风尘三侠组员(姓名+学号):陈松龄(2014013860)陈志康(2014013863)贾林松(2014013870)授课教师:范祥林日期:2017 年6 月18 日备忘录系统摘要:本作业利用JAVA进行开发,实现个人备忘录管理系统是能够运行在普通个人电脑上,为使用者提供日常信息管理功能的工具软件,使用者可以通过个人备忘录管理系统对日常工作/生活琐事进行更有效的管理,主要是为使用者提供对个人信息更方便的记录和查询功能,为使用者在个人信息管理上带来更多的便利。
具有日常记事:记录日常生活或者工作事件,以免遗忘,并提供记录的查询,添加和删除等管理功能。
一、目的与要求1.需求描述:基于MySql实现备忘录系统功能。
2.通过实践训练,进一步掌握JAVA开发方法,测试方法,提高软件开发和设计的能力。
3.进一步加强和提高工程文档的编写能力;二、需求分析本次系统采用结构化的设计方法进行设计,是设计成一个相对封闭的单机运行系统,作为大众化的应用软件,其用户界面是决定软件质量的首要条件。
所以,界面设计是开发与设计的重点。
充分贯彻简单易用、美观大方的基本原则,采用快速开发平台netbeans进行开发,并结合access数据库完成数据的导入。
NetBeans 平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。
当基于NetBeans 平台的应用被执行,平台主要类别的main方法便会被执行。
可用的模组会被放置在存储器中,并且开始执行任务。
通常模组会只在被需要时,其代码才会被装进记忆。
应用程式能动态安装模组。
任何应用程式能包括更新模组,允许用户申请下载的应用程式升级和加入新功能。
这样安装,升级以及新发并行不必迫使用户每次再下载整个应用程式。
整个 Netbeans 平台提供对桌面应用程式常用的服务,允许开发者集中于仅限于他的应用程式的逻辑设计。
【精品】网上书店j2ee大作业

上海xxxxxx JavaEE课程大作业题目基于B/S结构的网上书店的设计与实现学号2008XXXX课号130501905姓名XXXX班级2008XXX院系计信专业软件工程2010-12—27目录第一章引言1.1研究背景国外的Web商务系统应用起步较早,所以应用的领域比较广,网络销售已经在人们日常消费中占到一定比例,Web商务系统也比较成熟。
人们可以以网络这个媒体,足不出户就可以搜索、查询到自己需要的信息、购买自己需要的商品。
我国电子商务的发展起源于70年代的EDI应用,我国海关是最早引入EDI进行报关,经过几年的完善发展目前企业可以通过上网申请报关。
电子商务概念首次引入中国是在1993年,第一笔网上交易发生在1996年。
目前我国网上书店的主要类型有:由国有新华书店投资建设的网上书店.一些有实力的传统书店,都会建立自己的网站,利用网络促销,争取更多的市场份额。
它们主要依托传统的图书大厦的图书储存进行网络售书,属于新华书店上网或上网的书店。
由出版社建立的网上书店。
因为网络出版的缘故,出版社是最早触网的,我国500多家出版社中,已建立网站的有349家,占62%.较好的出版社营销网站建设的特点是:以出版社本社出版物为网站核心,突出特色,访问速度快捷,信息及时更新,内容的合理编排以及完善的检索能力,较强的交互能力。
外贸出版公司投资建设的网上书店。
这一类网上书店立足公司主营业务,主要对海外进行图书销售,销售量逐渐增加.非出版业资本投资建设的网上书店。
如卓越网。
就目前情况而言,上述几类的网络书店可以分为两大类。
一类是没有实体书店的网上书店,以卓越网为代表,还有一类是以实体书店为支撑的。
在这个背景之下,我开发了网上书店管理系统,形成了以计算机技术、网络技术、以及数据库技术等有机地结合起来的网上书店管理系统。
充分利用网络技术、数据库技术和管理技术相互结合具有的优越性,将书店管理移置到互联网环境中进行,使书店更能有效的工作,完成各种任务,如网上购书,网上看书等一切依托上网的网上购物平台。
J2EE期末复习(含答案)

1、ORM 有什么好处?AA).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值? CA).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询?CA).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法? AA).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。
BA).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式?CA).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类?BA).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种?BA).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的?DA).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色?AA).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的?CA).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写?BA).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中?DA).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是?AA).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。
华师《J2EE应用框架设计与项目开发》在线作业-0001

华师《J2EE应用框架设计与项目开发》在线作业-0001
写类的目的是为了描述一类事物共有的( )
A:属性
B:数量
C:范围
D:源文件
答案:A
对于预定义<%!预定义%>的说法错误的是:(? )
A:一次可声明多个变量和方法,只要以“;”结尾就行
B:一个声明仅在一个页面中有效
C:声明的变量将作为局部变量
D:在预定义中声明的变量将在JSP页面初始化时初始化
答案:C
下面概念中,不属于面向对象方法的是()
A:对象
B:继承
C:类
D:过程调用
答案:D
如何获取一个?Cookie[]( )。
A:request.getCookies()
B:request.getCookie()
C:response.getCookies()
D:response.getCookie()
答案:A
在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:(??)
A:name
B:property
C:value
D:其他选项都选
答案:C
Servlet是用Java编写的运行在Web服务器中的程序,它可以调用服务器端的类,也可以被调用,因此它也是一个( )
A:类
B:结构
C:对象
D:变量
答案:A
泛型使用中的规则和限制是( )
A:泛类参数只能是类类型不能是简单类型。
[南开大学]21秋学期《J2EE信息系统设计》在线作业-答案
![[南开大学]21秋学期《J2EE信息系统设计》在线作业-答案](https://img.taocdn.com/s3/m/78bc95c85a8102d277a22fd0.png)
[南开大学]21秋学期《J2EE信息系统设计》在线作业试卷总分:100 得分:100一、单选题 (共 20 道试题,共 40 分)1.给定一个Servlet的代码片段如下: Public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ ______out.println(“hi kitty!”);out.close();}运行次Servlet时输出如下: hi kitty!则应在此Servlet下划线处填充如下代码。
(选项一项)【A.】PrintWriter out = respons<-E.->getWriter();【B.】PrintWriter out = request.getWriter();【C.】OutputStream out = respons<-E.->getOutputStream();【D.】OutputStream out = request.getWriter();[参考.选择]:A2.在JSP页面中使用bean,我们必须使用JSP动作标签( )。
【A.】useBean【B.】useBeans【C.】Beans【D.】JavaBean[参考.选择]:A3.ORM系统一般以中间件的形式存在,实现程序对象到关系数据库数据的映射下面哪个部分不属于ORM组成?()【A.】对持久类对象进行CRUD操作的API【B.】用于访问数据库的SQL语句【C.】规定mapping?metadata的工具【 D.】可以让ORM实现同事物对象一起进行dirty?checking,lazy?association?fetching和其他优化操作的技术[参考.选择]:B4.16) J2EE中,JSP EL表达式:s{(10*10) ne 100}的值是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院Java EE课程大作业题目计算机学院在线考勤系统学号 ******** 课号 ********* 姓名陈小格班级 2011053 院系计算机科学与技术学院专业计算机科学与技术(电企)2013-06-10目录第一章系统需求与分析 (3)第二章系统设计 (4)1. 系统组成: (4)2. UML活动关系图: (4)3. 功能设计 (6)4. 数据库设计 (7)5. 项目界面和完成功能 (10)第三章系统关键模块技术实现 (13)第四章系统测试与部署 (17)第五章系统开发总结与心得体会 (20)参考文献 (21)第一章系统需求与分析计算机学院在线考勤系统适用于对在校学生的各门课的出勤情况予以记录,计算和查询,一个有效的查询系统分别包括后台管理权限设计,录入设计和查询设计。
该系统的使用对象为三类人,分别为教师,学生,管理员。
具体任务分配如下所示:根据如上所示,本系统需要完成的功能如下1.学生系统学生通过学号和起始密码(111111)完成首次登陆,学生首先进行选课。
学生只能查询自己的考勤情况及最后得分,可根据课程号的课程名查询,同时可修改自己的登录密码,修改的密码则通过数据库返回给管理员,学生可至管理员处索取密码。
2.教师系统教师通过教师号和初始密码(111111)完成首次登陆,教师可查询自己教授的课程,并能够在自己所教授的课程里进行考勤录入,统计查询,录入得分等操作,可修改密码,密码同样将返回给管理员。
3.管理员系统管理员负责基本信息维护:学生信息导入、教师信息导入,被导入并输入资料的人才有资格登录此系统。
课程信息包括基本信息和指定授课老师,指定教师在指定时间对该门课的考勤录入资格;查看考勤信息则用于在期末计算学生平时成绩得分,管理员有权限修改。
第二章系统设计1. 系统组成:本项目采用jsp +hibernate+javaBean+Servlet技术完成由以下三部分组件组成:i.用户表示层(视图,即各jsp文件);ii.控制处理层(控制器,即各dao和serv);iii.业务逻辑层(模型,即各JavaBean);2. UML活动关系图:下图是具体的UML活动关系图,包含进入系统时可以进行的操作学生教师管理员3. 功能设计1.学生选课:学生可在管理员录入并开发权限的课程中选课。
考勤查询:学生可在线查询自己在各门课的出勤情况,期末过后也可在同页面查询该门课成绩(平时+考试)修改密码:修改登录密码2.老师课程查询:教师可查询自己教授的课程考勤录入:教师可录入自己所教授课的考勤情况填写分数:期末过后,教师可在系统中填写学生的卷面分数(占总成绩的70%),考勤所占分数(然后按学生出勤百分比算分)及剩余分数(两项占30分),系统由此得出学生期末分数。
修改密码:修改登录密码3.管理员教师信息录入:教师信息指教师的基本信息,包括教师号,姓名,性别,身份证号,联系电话,唯有被录入的教师才有权限以教师身份登录本系统。
学生信息录入:学生信息包括学号,姓名,班级,性别,身份证号,同样,唯有被录入的学生才有权限以学生身份登录本系统课程信息录入:课程信息包括课程号,课程名,授课教师号,授课开始周,授课结束周,授课时间,总课时,当学生登录系统选课时,对应的课程信息将显示在学生选课栏里供选择。
课程信息管理:用于修改删除课程信息课程控制:用于开启或关闭教师录入该门课成绩功能和学生选择该门课功能成绩管理:用于查看和修改学生的各项成绩4. 数据库设计数据表的设计及功能如下:●信息表,用于存放各种用户的基本信息●课程表,用于存放课程信息●考勤表,用于存放各门课的考勤信息信息表CREATE DATABASE IF NOT EXISTS school;USE school;DROP TABLE IF EXISTS `userinfo`;CREATE TABLE `userinfo` (`id` int(10) unsigned NOT NULL auto_increment,`no` varchar(45) default NULL,`Sname` varchar(45) default NULL,`Ssex` varchar(4) default NULL,`Ssf` varchar(45) default NULL,`se` varchar(45) default NULL,`Tphone` varchar(45) default NULL,`userType` int(10) unsigned default NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;课程表DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`id` int(10) unsigned NOT NULL auto_increment, `Cno` varchar(45) default NULL,`Tno` varchar(45) default NULL,`Cname` varchar(45) default NULL,`Cgra` int(10) unsigned default NULL,`Cov` int(10) unsigned default NULL,`Ctime` varchar(45) default NULL,`checksum` int(10) unsigned default NULL, `stuflag` int(10) unsigned default NULL, `teaflag` int(10) unsigned default NULL, `Chour` int(10) unsigned default NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;考勤表DROP TABLE IF EXISTS `checkpass`;CREATE TABLE `checkpass` (`id` int(10) unsigned NOT NULL auto_increment, `Cno` varchar(45) default NULL,`Sno` varchar(45) default NULL,`cweek` varchar(45) default NULL,`cnum` varchar(45) default NULL,`chall` varchar(45) default NULL,`Ath` varchar(45) default NULL,`Allgra` varchar(45) default NULL,`cname` varchar(45) default NULL,`qm` varchar(45) default NULL,`sname` varchar(45) default NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;5. 项目界面和完成功能1 登录2 修改密码学生1 选课2 成绩查询教师1 课程查询2 录入成绩管理员1.学生管理2.教师管理3.课程管理4.课程管理5.成绩管理第三章系统关键模块技术实现1.登录模块以下为serv中代码:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {UserDao userDao = new UserDao();String name = request.getParameter("name");String pss = request.getParameter("pss");Integer userType =Integer.valueOf(request.getParameter("select"));index.jsp页面上传登录信息由LoginServlet接受Userinfo userinfo = userDao.login(name, pss, userType);,Checkpass.dao通过Userinfo.java链接打开session对话,从数据库调用Userinfo表中数据,LoginServlet页面调用dao中Checkpass方法,用于验证jsp 页面上传信息是否合法if(userinfo!=null){HttpSession session = request.getSession();session.setAttribute("userInfo", userinfo);if(userType==1){request.getRequestDispatcher("studentMain.jsp").forward(request, response);}else if(userType==2){request.getRequestDispatcher("teacherMain.jsp").forward(request, response);}else if(userType==3){request.getRequestDispatcher("adminMain.jsp").forward(request, response);}}else {request.setAttribute("errorFlag", "error");request.getRequestDispatcher("index.jsp").forward(request, response);}}根据不同的判断结果执行不同的语句2.考勤录入模块模块执行顺序如下<form action="LoadScoreAction?actionFlag=saveInsert" method="post"> jsp页面利用ation方法传入flagservlet页面通过后台导入flag调用saveinsert方法else if("saveInsert".equals(actionFlag)){Integer id = Integer.valueOf(request.getParameter("id"));Checkpass checkpass = checkpassDao.loadcheckpassByid(id);Course course =courseDao.loadCourseByCno(checkpass.getCno());double cnum =request.getParameter("cnum")==""?0:Double.valueOf(request.getParamete r("cnum"));double qm =request.getParameter("qm")==""?0:Double.valueOf(request.getParameter( "qm"));double ath =request.getParameter("ath")==""?0:Double.valueOf(request.getParameter ("ath"));接收页面的传来的数据,因为考勤录入只有一个数,程序太单调,于是此处我不仅设置了考勤录入(未到次数),还设置了其他成绩录入(除考勤外的平时分得分,自定两项相加占总成绩的三十分),期末成绩录入。