JSP 项目答辩问题1.什么是B/S、C/S答案: C/S 结构:Client/Server(客户端/服务器),桌面安装应用程序(QQ、斗地主、MSN)。
B/S结构:Browser/Server(浏览器/服务器), Web应用程序(WebQQ、OA、网页游戏)。
2.HTTP常见状态码?答案:200 成功401 客户端没有访问权限404 路径错误500 服务器产生内部错误3.传值方式get/post答案:客户端向服务器传递数据有两种方式(通过form表单实现):get 和 postGet: 有长度限制(数据量小),浏览器地址栏可以看见传递的参数。
默认使用get方式传值。
Post:无长度限制(数据量大),地址栏不可见(相对安全)。
4.Servlet的生命周期?答案:1. 实例化(执行构造方法)--->2. 初始化(执行init()方法)--->3.服务(根据get 或post请求执行相应的doGet()或doPost()方法) --->4. 销毁(执行destroy()方法)5.页面跳转的两种方式?答案:内部跳转和外部跳转。
内部跳转使用:request. getRequestDispatcher (“跳转的路径”).forward(request,response);“跳转的路径”);注意:两者之间的区别,内部跳转请求在服务器内部完成,相当于一次请求;而外部跳转客户端会发送两次请求;6.内部跳转和外部跳转区别?答案:内部跳转与外部跳转区别:1.内部跳转:浏览器的地址栏不会发生改变。
request中的参数值,会被保留到新的页面。
2.外部跳转:浏览器地址发生改变(相当于二次请求)。
第一次request中的参数值,不会被保留。
7.Post提交如何处理中文?答案:注意:这种中文处理方式只能用来处理post提交必须写在方法的第一行。
8.Get提交如何处理中文?答案:注意:这种方式只能用来处理get提交9.JSP页面元素的构成?10.JSP页面常用的内置对象?答案:11.Session对象的作用已经常用方法?答案:Session作用:用于存放、记录每一个客户端的相关信息。
//将变量存放在session中session.getAttribute("name");//获取session中的值//session立即被销毁12.什么是MVC三层结构?答案:M表示模型——数据访问层。
C表示控制——业务控制层。
V表示显示——展示层。
13.项目中如何判断用户是否已经登录?答案:“名字”));如果返回null表示还没有登录。
14.请简单介绍一下购物车如何实现?答案:每个用户对应一个唯一的session对象,将用户的购物信息通过session保存、读取。
Session中存放的是一个集合(ArrayList),集合中存放用户购买的商品对象(GoodsInfo)。
15.jsp中的作用域有几种?分别是什么?其作用范围有多大?答:有四种,分别是:page,request,session,application。
作用范围:page:在当前页面中有效,request:能保存一次服务器端跳转内的值,session:一次会话之内有效(可以理解为打开浏览器开始到关闭浏览器之后),application:在整个服务器启动范围之内有效(即:启动服务器开始至关闭服务器)。
16.jsp运行原理?1)客户端通过jsp页面向服务器断发送一次请求,2)服务器接受请求后交给jsp解释引擎处理,3)jsp解释引擎在将处理结果返回给服务器,4)最后服务器在将客户端的请求结果以html的方式返回给客户端17.每一个jsp文件最终都会被转译成什么文件?答:编译成servlet文件;18.为什么jsp文件第一次运行时候比较慢?答:第一次运行jsp文件的时候,首先要将jsp文件编译成servlet文件,然后在加载执行,第二次运行jsp文件的时候:1)首先判断jsp文件是否修改,如果没有修改,则直接调用之前生成的servlet文件,如果有修改则先要在编译生成新的servlet文件之后在执行。
19.如何访问servlet?20.<xml version=encoding="UTF-8"><web-app version=xmlns=xmlns:xsi=xsi:schemaLocation=><servlet><!—<servlet-name>simple</servlet-name><!—包.类名 --><servlet-class></servlet-class></servlet><servlet-mapping><!—此名称必须与上面配置的名称一致 --><servlet-name>simple</servlet-name><!—访问此servlet的路径。
必须以/开头 --><url-pattern>/aa/bb</url-pattern></servlet-mapping><welcome-file-list><welcome-file></welcome-file></welcome-file-list></web-app>21.servlet的生命周期答:创建 初始化—》服务—》销毁22.解释servlet中各个方法在什么时候执行?public class SimpleServlet extends HttpServlet{public void init(ServletConfig config)throws ServletException{ //初始化方法}public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{//接收客户端的get请求}public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{//接收客户端的post请求}public void destroy(){//当servlet销毁的时候执行}}23.如何通过地址向servlet中传递参数?答:<a href=”’zhangsan’&pass=’123456’”>地址重写传递参数</a>只要在要访问的路径之后加上一个“”然后接上要传递的参数名称如上所示name,后面赋值即可,如果要传递多个参数则用“&”隔开。
24.简述什么是MVC设计模式以及优点有哪些?答:jsp+servlet+javaBean,客户端发送请求,由servlet接收(Control),并且调用相应的dao(Model)进行处理,在将结果返回给响应的jsp页面(view)。
优点:适合团队开发,可维护性很高,分工明确等。
千里之行购物网站答辩问题列表一、登入登出部分1、请解释登录界面的业务流程及相应代码;登录页面,当单击登录按钮之后,将表单信息(用户名和密码)提交到Servlet中,Servlet 接收表单信息,调用相应的Dao进行登录验证,如果验证成功,则将用户名,用户id,保存在session中,然后跳转到后台首页,否则失败。
2、如果登录失败,如何处理,如何给出提示信息?如果登录失败,保存失败信息在request范围之内,然后使用服务器端跳转,跳转到登陆页,在登录页将request范围之内的信息取出打印在页面中,给用户提示。
3、你的后台页面是否可以绕过登录,而通过URL直接访问?如果是,请解决此问题;如果否,请解释你是如何做到的。
不可以,在后台登陆首页,在页面的最上方判断session中是否存在用户名的属性,如果不存在则跳转到登录页,否则说明登录成功。
4、页面上的登录的用户名和时间是如何显示的?(和第一题有重叠)从session中取出用户名打印出来即可显示,时间通过javaScrip可以得到当前系统时间。
5、如何发布公告的?解释业务流程?a)在发布公告页面,输入完整的信息之后,单击提交按钮之后,将表单信息提交到Servlet中,Servlet接收表单信息,并且将Session中的当前用户ID取得,在取得当前系统时间,在调用相关的dao类,进行处理,如果添加成功,跳转到成功页,否则到失败页面。
6、你的“退出系统”功能是如何完成的?销毁session中所有的信息,使用invalidate()方法。
然后跳转到登陆页面。
二、系统用户管理部分:1、请解释用户密码修改的业务流程及相应代码;2、请解释用户名修改的业务流程及相应代码;三、公告管理部分1、请解释公告管理中的增,删、改、查中的某个业务流程及相应代码;2、在新增公告时,公告发布者的信息应如何获取和操作,说明你的方法;添加公告时,可以将之前保存在Session中的用户id取得,然后插入到公告信息表中的相应字段。
3、解释分页的思想以及相关代码前台部分:1、解释购物车功能如何实现以及解释相关代码。
注意:项目代码的解释一定要清楚,例如:找到客户注册的代码,并且解释每行的含义等。
15.删除一条记录用什么方法?怎样实现用户登录的验证是怎样的。
利用传递主键的方法,也就是delete from 表名 where 主键=”传递过来的主键的值”.利用select * from 用户信息表 where 用户名=”” and 密码=””,如果有数据则登陆成功技术问题:1.我们正常写完一个JAVA文件都需要自动编译一下,这是为什么因为我们运行程序的时候用到的不是java程序而是class程序.tomcat读的是java文件还是什么?是class文件不是java程序java链接sqlserver的代码是什么?try {conn = DriverManager} catch (SQLException ex) {}return rs;2.链接sqlserver的一般端口是什么?1433还有其他的端口么?tomcat的8080端口3.在java项目开发当作,你一般是怎么调试程序的?sqlserver数据库的还原以及备份?利用debug调试程序.4.如果我要给页面加过滤器控制乱码,我应该怎么做?近来在调试Jsp文件问题时,中文乱码现象经常遇到,现将处理方法总结一下,供大家参考:<%@ page contentType="text/html; charset=gb2312"%>这是其中的一种作法,当页面较少时还好,如果页面较多,我每添加新的页面就要加上这句话,所以可以采用过滤器来解决,具体解决步骤如下:首先写一个过滤器类,代码如下:package demo;public class SetCharacterEncodingFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest request, ServletResponse res ponse,FilterChain chain)throws IOException, ServletException {// 传递控制到下一个过滤器public void init(FilterConfig filterConfig) throws ServletException { }}<filter><!--为过滤器起个名字--><filter-name>Set Character Encoding</filter-name><!--过滤器类的包名.类名--><url-pattern>/*</url-pattern></filter-mapping>这样所有的请求都将交由这个过滤器处理下,这样无论我们添加多少个页面都可以放心了,不用总考虑要加那么一句代码了.3.在存取数据库时发生乱码现象,这种现象比较郁闷,处理起来相对复杂一点.首先要在数据存入数据库时,进行如下编码的转换:如我们要把含有中文的字符串存入数据库,首先:String author=new?在从数据库取出展示到页面时,也要经过如下转换:以上是我总结的对三种Jsp文件中文乱码的处理方法,希望对大家有所帮助.5.在数据库定义字段的时候,可以选择char还有varchar,你一般选择什么,为什么?选择varchar,因为varchar是可变长的字符型,而char是定长的5.为什么要用struts自身带的text框,它与HTML的有什么区别?怎么导入现有的数据库,它的备份为**.bak还原数据库或者附加数据6.在中文编程中,你使用的服务器是TOMCAT,如果出现乱码,你是怎么解决的?方法一:更改页面字符集JAVA连接sqlserver需要哪些jar包?7.如果我要实现上传图片,然后再另一个页面显示,我应该怎么做?应该把上传的图片输出到服务器下面的某一个文件夹,这样可以保证本机图片删除以后任何页面都可以访问并且显示.安装sqlserver时,经常会出现安装问题,例如会出现说“某某文件被挂起,安装运行程序之前请重新启动计算机”,你是否也遇见过这样的问题?遇到过,只要把暴风影音或者网络电视卸载就可以解决.8.如果我要从配置文件中读取中文汉字,显示到JSP页面上?如果出现乱码我应该怎么处理?"iso8859_1"), "gb2312");怎么去更改sqlserver的字符集?可以用下面语句改变数据库的字符集。