J2EE期末大作业
- 格式:doc
- 大小:510.00 KB
- 文档页数:18
适用专业:注:每小题正确选项含1项或多项1.JavaEE的三层结构包括表示层、()。
A.服务层B.中间层C.保存层D.数据层2.下列叙述中不属于HTTP协议中GET方法和POST方法的区别内容是()。
A.提交数据时,POST比GET安全B.提交数据时,POST没有数据量的限制C.GET方法请求的页面可以作为书签D.POST方法请求的页面可以使用邮件发送3. 使用JSP开发Web项目的缺点包括()。
A.不易维护B.方便C.快捷D.不易扩展4. 在JSP中,使用()接收客户端发送的请求数据。
A.request.getParameter();B.request.getAttribute();C.response.getParameter();D.response.getAttribute();5. 浏览Web网页服务默认的端口号是(),Tomcat服务的默认端口是()。
A.80, 8088B.8088, 80C.88, 8080D.80, 80806. HttpServletResponse的()方法用于将一个HTTP请求重定向到另一个URL。
A.sendURL();B.redirectURL();C.sendRedirect();D.getRequestDispatcher();7. 在Servlet生命周期中,对应服务阶段的方法是()。
A.doGet()B.doPost()C.doGet()和doPost()D.service()8. 下列有关Servlet的生命周期,说法不正确的是()。
A.在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例B.在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法C.在销毁阶段,执行destroy()方法后系统立刻进行垃圾回收D.destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法9. 在部署Java Web程序时,()文件夹或文件时必需的。
一、选择题1)、在J2EE中,<%=”2”+4%>将输出()。
(选择一项)a) 2+4 b) 6 c) 24 d) 不会输出,因为表达式是错误的2)J2EE中,JSP表达式语言的语法是()。
(选择一项)a) {EL expression}b) ${EL expression}c) @{EL expression} d) &{EL expression}3)在J2EE中,下列()语句可以获取页面请求中的一个文本框的输入(文本框的名字为title)。
(请选择一项)a) response.getParameter(“title”); b) request.getAttribute(“title”); c) requert.getParameter(“title”); d) requert.getParameters(“title”);4)J2EE中,HttpSession接口位于()包中。
(选择一项)a) javax.servlet b) javax.servlet.http c) javax.servlet.http.session d) javax.servlet.session5)在J2EE中,test.jsp文件中有如下一行代码:<jsp:useBean id=”user”scope=”____”type=”erBean”/> 要使user对象在用户对其发出请求时存在,下划线中应填入()。
(选择一项)a) Page b) request c) Session d) application6)在J2EE MVC设计模式体系结构中,()是实现控制器的首选方案。
(选择一项)a) JavaBean b) Servlet c) JSP d) HTML e) XML7) 在J2EE中,若要在JSP正确使用标签:<x:getKing/>,在jsp中声明的taglib指令为:<%@taglib uri=”/WEB-INF/myTags.tld”prefix=”_____”%>,下列线处应该是()。
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语言体系比较庞大,包括多个模块。
武汉轻工大学数学与计算机学院2019-2020学年第一学期J2EE大作业指导老师: ******** 专业:信息管理与信息系统班级:信管1602班学号: ********** 姓名: *****2019年10月29 日1. 架构概述J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术。
这些技术的出现给电子商务时代的WEB应用程序的开发提供了一个非常有竞争力的选择。
怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。
完成这个步骤可以形成一个主要里程碑基线。
形成这个基线有很多好处:各种因数初步确定为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。
往往架构设计师在这个过程中要阅读大量的技术资料,听取项目组成员的建议,考虑领域专家的需求,考虑赞助商成本(包括开发成本和运行维护成本)限额。
一旦架构设计经过评审,这些因数初步地就有了在整个项目过程中的对项目起多大作用的定位。
定向技术培训一旦架构师设计的架构得到了批准形成了基线,项目开发和运行所采用的技术基本确定下来了。
众多的项目经理都会对预备项目组成员的技术功底感到担心;他们需要培训部门提供培训,但就架构师面对的技术海洋,项目经理根本就提不出明确的技术培训需求。
怎不能够对体系中所有技术都进行培训吧!有了架构里程碑基线,项目经理能确定这个项目开发会采用什么技术,这是提出培训需求应该是最精确的。
不过在实际项目开发中,技术培训可以在基线确定之前与架构设计并发进行。
角色分工有了一个好的架构蓝图,我们就能准确划分工作。
如网页设计,JSP 标签处理类设计,SERVLET 设计,session bean设计,还有各种实现。
这些任务在架构蓝图上都可以清晰地标出位置,使得项目组成员能很好地定位自己的任务。
一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。
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 &&。
★编号:智能技术与工程学院2019/2020-01 学期 □期中/☑期末/其他( )考字第( )号 试题册第 1页 /共 1页 重 庆 科 技 学 院 2019 /2020 学年第 1 学期考试( A )卷试题册 课程名称:JA V A EE 平台企业级应用开发 课程序号:3DX1018A 、3DX0719B 适用专业班级: 计科2017、计科升2016、 本试题册共 1 页,考试方式: 大作业 要求:本次期末考试,软件要求,JDK 1.8、Tomcat1.8、Spring -Springwork -4.3.6、Mybatis3.4.2 Database MySQL 57 or SQLServer2008。
考试要求: 同学们根据观察自身生活环境,学习工作环境,身边的商业实体,建议自拟题目,设计一个软件系统,并实现。
系统实现具体要求如下: 1. 要有整个软件比较详细的系统功能说明。
2. 整个系统设计要有前端(UI 设计)、业务层设计( Biz ),控制层设计(Controller ),数据持久层设计( DAO ),及数据库设计( DB ),数据库表不少于3张。
3. 要有详细的配置文件说明(Spring,MyBatis,SpringMVC,web 等)。
4. 系统整个功能完备,能正常运行。
5. 形成完整的系统设计报告。
备注:可供参考的系统题目 ● 银行管理系统 ● 图书管理系统 ● 成绩管理系统 ● 工资管理系统 ● 商店销售系统 ● 理发店客户管理系统 ● 快递客户管理系统 备注: 统一答辩时间:17周周三上午9:00-12:00;(计科升) 17周周四下午14:00-17:40;(计科升) 18周周三上午9:00-12:00;(计科) 18周周四下午14:00-17:40;(计科)专业班级:姓 名:学 号:密封线装订线。
10计算机《J2EE试卷-期末》含答案以下是为大家整理的10计算机《J2ee试卷-期末》含答案的相关范文,本文关键词为计算机,J2ee试卷-期末,答案,河海,大学,文天,学院,2,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
河海大学文天学院20XX~20XX学年度(二)10计算机《J2ee应用架构与eclipse开发技术》期末试卷一、填空题:(共10小题,每空2分,共20分)1.根据Java应用环境的不同可将Java平台划分为三种类型的版本,其中用于创建嵌入式应用程序的Java平台版本是_____J2me_________。
2.在hTmL中,一组选项中只可以选择单项的表单元素是___radio________。
3.web服务器会加载servlet类创建一个servlet对象,这个对象调用___init()_____方法完成必要的初始化工作。
4.在Tomcat中访问helloapp应用的login.html文件时,在浏览器地址栏应写的url为:___________________________________________________________ ____(注:端口号为8080)。
5.Jsp文件中,一个Jsp页面可以有许多程序片,这些程序片将被Jsp引擎按顺序执行,请问插入Java程序片的标记符为:___________。
6.在Jsp中,注释可以增强Jsp文件的可读性,并易于Jsp文件的维护。
Jsp中的注释可分为两种,一种是hTmL注释,另一种为Jsp注释,其中Jsp注释的标记符号为______。
7.在“Jsp+Javabean”二层架构中增加了控制层,引入“控制器”概念以释放Jsp的控制逻辑功能,请问控制器角色由_servlet____________来担任。
8.servlet容器启动每一个web应用时,都会为它创建一个唯一的_____AppLIcATIon____对象,该对象和web应用有相同的生命周期。
J2ee 期末综合练习题一、选择题1.page 指令的(B)属性用于引用需要的包或类A. extendsB.importC. isErrorPageD. language2.下列选项中,(B )可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)A.request.getParameter(name)B.request.getParameter("name")C.request.getParameterValues(name)D.request.getParameterValues("name")3.使用 response 对象进行重定向时,使用的是(C )方法。
A.getAttributeB.setContentTypeC.sendRedirectD.setAttribute4.在 Java EE 中,在 web.xml 中,有如下代码:<session-config><session-timeout>30</session-timeout></session-config>以下描述,正确的是(B )。
A.定义了默认的会话时时长,时长为 30 分钟B.可以使用HttpSession类的 getMaxInactiveInterval()方法把该值取出来C.定义了默认的会话超时时长,时长为 30 小时D.可以使用 Session类的 getMaxInactiveInterval()方法把该值取出来5.在 Http协议中用于发送大量数据的方法的是( A.A. postB. getC. putD. options6.HttpServletRequest 接口的(C .方法用于创建会话。
A. setSession()B. getContext()C. getSession()D. putSession() 7.( B)动作用于将请求发送给其他页面A. nextB. forwardC. includeD. param8.page指令的( B)属性用于引用需要的包或类A. extendsB. importC. isErrorPageD. language9.如何获取一个 Cookie[](A )。
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应用框架设计与项目开发》课程设计项目文档项目名称网盘系统班级学号姓名目录1 概述 (1)2 需求分析 (1)2.1 系统需求概述 (1)2.2 用例分析 (1)3 系统设计 (2)3.1 技术路线 (2)3.2 系统总体架构设计 (2)3.3 数据库设计 (2)3.4 系统详细设计 (5)4 系统实现 (10)3.1 xx功能的实现 (10)3.2 xx功能的实现 (11)5 小结 (16)1 概述J2EE是Sun公司推出的一套面向企业级应用的分布式体系,与传统的应用程序编程模型有了很大的差别,J2EE体系提供了一个基于组件的思想来设计、开发、装配及部署企业级应用。
J2EE为多层分布式企业计算提供了一套完整的技术和设施,它不仅继承了Java语言的平台独立的特点,而且结合了组件技术,为现代企业多层分布式应用提供一套完整的解决方案。
此次项目名称为网盘系统,作为J2EE课程的期末项目提出,希望通过网盘系统的设计开发,了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧;由于网络硬盘综合了各种优点,是一种功能强大、操作便捷、大容量、异步的存储工具,方便用户管理使用。
该系统主要实现用户的注册、登录、密码找回功能;文件夹的增加、删除以及重命名功能;文件的上传、下载以及共享功能;2 需求分析2.1 项目名称网盘系统2.2系统需求概述2.2.1 系统运行环境a 集成开发环境:MyEclipseb Web应用服务器:Tomcat6.0c 数据库服务器:MySQL2.2.2 功能需求网盘系统以快捷方便安全的操作方式,成为了一种资料共享的捷径。
该项目实现了用户对于文件的方便的管理,用户可以通过注册获得该系统的使用权,从而登录该系统,若用户忘记密码还可找回密码。
用户登录该网盘系统后可对文件夹进行创建删除以及重命名,可进行文件的上传、下载以及共享。
(1)用户注册:第一次使用该系统的用户可点击登录界面上的注册按钮,输入用户名以及密码,回答密保问题(方便找回密码),完成注册。
(2)用户登录:完成注册的用户输入用户名与密码进入网盘系统,否则必须先进行注册。
(3)找回密码:若用户忘记密码,点击找回密码按钮,正确回答密保问题后找回密码。
(4)新建文件夹:用户可通过键入文件夹名新建文件夹(方便查询)。
(5)重命名文件夹:用户可通过键入新文件夹名重命名文件夹。
(6)删除文件夹:点击删除按钮将文件夹从网盘系统中删除(弹出对话框选择是否删除)。
(7)上传文件:用户可以将文件保存至指定存储的文件夹位置(文件存储与服务器硬盘中,信息保存与数据库中)。
(8)删除文件:用户可以将文件从文件夹中删除。
1(9)共享文件:用户共享文件作为公共资源与其他用户使用。
(10)下载文件:用户点击下载按钮从服务器上下载所需要的文件到本地硬盘上来。
(11)文件夹与文件显示:用户登录系统后,页面显示系统根目录下的文件夹及文件。
(12)退出登录:用户点击退出按钮,返回登录界面。
2.3 用例分析用户可以注册、登录以及找回密码;用户在文件夹管理界面可以新建、重命名以及删除文件夹;用户在主界面可以上传、共享、下载以及删除文件。
3 系统设计3.1 技术路线使用了课程中学到的MVC模式,使用javascript,Struts Action,Servlet,Filter,ActionForm,jspcss+div,dbutil,struts的Html标签和jdbc等技术来实现本项目。
3.2 系统总体架构设计3.3 数据库设计用户注册信息表:文件路径信息表:建表语句:/*==============================================================*/ /* DBMS name: MySQL 5.0 *//* Created on: 2012/6/5 21:15:06 *//*==============================================================*/ drop table if exists file;drop table if exists folder;drop table if exists share;drop table if exists user;/*==============================================================*/ /* Table: file *//*==============================================================*/ create table file(3id int not null,fol_id int,name varchar(100),size varchar(100),type varchar(200),path varchar(500),createdtime datetime,primary key (id));/*==============================================================*/ /* Table: folder *//*==============================================================*/ create table folder(id int not null,use_id int,name varchar(50),createdtime datetime,primary key (id));/*==============================================================*/ /* Table: share *//*==============================================================*/ create table share(id int not null,fil_id int,sharetime char(10),primary key (id));/*==============================================================*/ /* Table: user *//*==============================================================*/ create table user(id int not null,name varchar(20),password varchar(50),question varchar(100),answer varchar(100),primary key (id));alter table file add constraint FK_Relationship_2 foreign key (fol_id) references folder (id) on delete restrict on update restrict;alter table folder add constraint FK_Relationship_1 foreign key (use_id) references user (id) on delete restrict on update restrict;alter table share add constraint FK_Relationship_3 foreign key (fil_id) references file (id) on delete restrict on update restrict;3.4 系统详细设计登录界面:注册界面:5注册成功:找回密码界面:找回密码成功:主界面:文件夹管理界面:7新建文件夹:重命名文件夹:删除文件夹:上传文件:9删除文件:共享文件:4 系统实现3.1 注册功能的实现public class registerAction extends Action {@SuppressWarnings("deprecation")@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {User user=(User)form;String name=user.getUsername();String password=user.getPassword();String question=user.getQuestion();String answer=user.getAnswer();String sql="select id from user where name=?";QueryRunner qr=DbHelper.getQueryRunner();String params[]={name};List list=null;try {list=(List)qr.query(sql,params, newBeanListHandler(User.class));} catch (SQLException e) {e.printStackTrace();}if(list.size()>0){request.setAttribute("message_1", "用户名已存在!");return mapping.findForward("register");}else{String sql_1="insert into user(name,password,question,answer) values(?,?,?,?)";Object params_1[]={name,password,question,answer};QueryRunner qr_1=DbHelper.getQueryRunner();qr_1.update(sql_1, params_1);String info="注册成功,请返回登录界面登录!";request.setAttribute("info", info);return mapping.findForward("success");3.2 登录功能的实现public class loginAction extends Action {@SuppressWarnings("deprecation")@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {User user=(User)form;String username=user.getUsername();String password=user.getPassword();String sql="select id,name,password from user where name=? and password=?";String params[]={username,password};QueryRunner qr=DbHelper.getQueryRunner();List list =null;try{list=(List)qr.query(sql,params,new11BeanListHandler(User.class));}catch(SQLException e){e.printStackTrace();}if(list.size()>0){user=(User)list.get(0);String userid=Integer.toString(user.getId());request.getSession().setAttribute("username",username);request.getSession().setAttribute("userid", userid);return mapping.findForward("fileList");}else{request.setAttribute("message", "请输入正确的用户名和密码!");return mapping.findForward("login");3.3 找回密码功能的实现public class retrieveAction extends Action{@SuppressWarnings("deprecation")@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {User user=(User)form;String name=user.getUsername();String question=user.getQuestion();String answer=user.getAnswer();String sql="select name,password,question,answer from user where name=? and question=? and answer=?";String params[]={name,question,answer};QueryRunner qr=DbHelper.getQueryRunner();List list=null;try {list=(List)qr.query(sql,params, newBeanListHandler(User.class));} catch (SQLException e) {e.printStackTrace();}if(list.size()==0){request.setAttribute("message_2", "问题或答案错误!");}else{request.setAttribute("list_4", list);}return mapping.findForward("retrieve");3.4新建文件夹功能的实现public class newFolderAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {Folder folder=(Folder)form;String name=folder.getName();String name1=new String(name.getBytes("iso-8859-1"),"UTF-8");Stringuserid=(String)request.getSession().getAttribute("userid");String sql="insert into folder(userid,name,createdtime)values(?,?,now())";Object params[]={userid,name1};QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql, params);return mapping.findForward("folder");3.5重命名文件夹功能的实现public class renameAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {Folder folder=(Folder)form;String name=folder.getName();int id=(Integer)request.getSession().getAttribute("folderId");String sql="update folder set name=? where id=?";Object params[]={name,id};QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql, params);return mapping.findForward("folder");3.6删除文件夹功能的实现public class deleteFolderAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {Folder folder=(Folder)form;String id=Integer.toString(folder.getId());13String sql="delete from folder where id="+id;QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql);return mapping.findForward("folder");3.7上传文件功能的实现public class uploadAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {File f=(File)form;int folderid=Integer.parseInt(f.getFolderid());FormFile file=f.getTheFile();//取得上传的文件String contentType =file.getContentType();long fsize=file.getFileSize();//文件大小String size = "";DecimalFormat df = new DecimalFormat("#.00");if (fsize < 1024) {size = df.format((double) fsize) + "B";} else if (fsize < 1048576) {size = df.format((double) fsize / 1024) + "K";} else if (fsize < 1073741824) {size = df.format((double) fsize / 1048576) + "M";} else {size = df.format((double) fsize / 1073741824) + "G";}String fileName = file.getFileName();//文件名InputStream streamIn =file.getInputStream();//把文件读入String filePath = servlet.getServletContext().getRealPath("/");String path=filePath+"upload"+"/"+fileName;OutputStream streamOut =new FileOutputStream(path);int bytesRead=0;byte[]buffer=new byte[8192];while((bytesRead = streamIn.read(buffer,0,8192))!=-1){streamOut.write(buffer,0,bytesRead);String sql="insert intofile(folderid,name,size,type,path,createdtime)values(?,?,?,?,?,now())";Object params[]={folderid,fileName,size,contentType,path};QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql, params);return mapping.findForward("fileList");3.8-下载文件功能的实现public class downLoadAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {File f= (File)form;String fileName=f.getFileName();String id =Integer.toString(f.getId());String sql="select path from file where id ="+id;QueryRunner qr=DbHelper.getQueryRunner();List list=(List)qr.query(sql, new BeanListHandler(File.class));File file=(File)list.get(0);String filePath=file.getPath();InputStream inStream=new FileInputStream(filePath);response.reset();response.setContentType("bin");response.addHeader("Content-Disposition","attachment;filename="+fileName);byte[] b=new byte[100];int len;while((len=inStream.read(b))>0)response.getOutputStream().write(b, 0, len);inStream.close();return null;3.9共享文件功能的实现public class shareFileAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {File file=(File)form;int fileid=file.getId();String sql="insert into share(fileid,sharetime)values(?,now())";Object params[]={fileid};QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql, params);return mapping.findForward("fileList");3.10删除文件功能的实现public class deleteFileAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,15HttpServletRequest request, HttpServletResponse response)throws Exception {File f=(File)form;String id=Integer.toString(f.getId());String sql="delete from file where id="+id;QueryRunner qr=DbHelper.getQueryRunner();qr.update(sql);return mapping.findForward("fileList");5 小结【遇到的问题及解决方法分析等】。