软件工程答辩常见问题总结

发布时间:2020-05-11 21:47:09   来源:文档文库   
字号:

软件工程答辩常见问题总结


1.我们正常写完一个JAVA文件都需要自动编译一下,这是为什么?

因为我们运行程序的时候用到的不是java程序而是class程序.

tomcat读的是java文件还是什么?是class文件 不是java程序

2.链接sqlserver的一般端口是什么?

1433

还有其他的端口么?tomcat的8080端口

3.在java项目开发当作,你一般是怎么调试程序的?sqlserver数据库的还原以及备份?

利用debug调试程序.

4.如果我要给页面加过滤器控制乱码,我应该怎么做?

近来在调试Jsp文件问题时,中文乱码现象经常遇到,现将处理方法总结一下,供大家参考:

.Jsp文件页面显示乱码,这种情况比较好处理,在页面的Page指令加上如下一项就OK了:

<%@ page contentType="text/html; charset=gb2312"%>

.Jsp页面采用表单提交时,提交的数据中含有中文,这时我们获取表单数据后,展示到其它页面时也会出现乱码,解决方案是在提交处理的Servlet里接收数据时,先加上如下一行代码:

request.setCharacterEncoding("gb2312");

这是其中的一种作法,当页面较少时还好,如果页面较多,我每添加新的页面就要加上这句话,所以可以采用过滤器来解决,具体解决步骤如下:

 

首先写一个过滤器类,代码如下:

package demo;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class SetCharacterEncodingFilter implements Filter {


    public void destroy() {
    }
      public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)throws IOException, ServletException {

    request.setCharacterEncoding("gbk");

    // 传递控制到下一个过滤器
    chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }
}

然后在web.xml文件中添加如下代码:

 
    

   Set Character Encoding
   

    demo.SetCharacterEncodingFilter
 
 
    Set Character Encoding
   

    /*
 

这样所有的请求都将交由这个过滤器处理下,这样无论我们添加多少个页面都可以放心了,不用总考虑要加那么一句代码了.

.在存取数据库时发生乱码现象,这种现象比较郁闷,处理起来相对复杂一点.

首先要在数据存入数据库时,进行如下编码的转换:如我们要把含有中文的字符串存入数据库,首先:

     String s=request.getParameter("author"); 

    String author=new  String(s.getBytes("ISO8859_1"),"gb2312");

在从数据库取出展示到页面时,也要经过如下转换:

      String  s=rs.getString("author");

      String author=new String(s.getBytes("GB2312"),"ISO8859_1");

 

以上是我总结的对三种Jsp文件中文乱码的处理方法,希望对大家有所帮助.

5.在数据库定义字段的时候,可以选择char还有varchar,你一般选择什么,为什么?

选择varchar,因为varchar是可变长的字符型,而char是定长的

5.为什么要用struts自身带的text框,它与HTML的有什么区别?

在jsp中经java解释后就变成了 两者是等价的 在jsp页面中之所以要用是因为struts结构中许要在actionform中直接根据中的属性poperty与actionform中的字段一一对应取值 不许要普通采用ruquest.getP*()来去值

怎么导入现有的数据库,它的备份为**.bak

还原数据库或者附加数据

6.在中文编程中,你使用的服务器是TOMCAT,如果出现乱码,你是怎么解决的?

方法一:更改页面字符集

方法二:在tomcat的server.xml中更改字符集

JAVA连接sqlserver需要哪些jar包?

mssqlserver.jar

7.如果我要实现上传图片,然后再另一个页面显示,我应该怎么做?

应该把上传的图片输出到服务器下面的某一个文件夹,这样可以保证本机图片删除以后任何页面都可以访问并且显示.

安装sqlserver时,经常会出现安装问题,例如会出现说“某某文件被挂起,

安装运行程序之前请重新启动计算机”,你是否也遇见过这样的问题?

遇到过,只要把暴风影音或者网络电视卸载就可以解决.

8.如果我要从配置文件中读取中文汉字,显示到JSP页面上?

如果出现乱码我应该怎么处理?

str.getBytes("iso8859_1"), "gb2312");

怎么去更改sqlserver的字符集?

可以用下面语句改变数据库的字符集。  
  ALTER   DATABASE   yourdb   COLLATE   新字符集  
   
  改变sql   server的默认字符集,要重建master  

9.在获取一个从数据库查询回来的数组,你一般是怎么知道它里面存储了多少数据?

利用数组.size()方法就可以知道其数目是多少.

你在开发中用过JAVASCRIPT么,你为什么要用这个,它与JAVA有什么关系?

用到了, JAVASCRIPT可以减轻服务器的访问频率,从而提高服务器的运行速度.达到了前台校验的效果.

它和java没有任何关系,属于一种脚本语言.

10.java中如果出现EXCEPTION的话,你应该怎么做,你在这次开发中用到了么?java连接mysql需要哪些JAR包?

第一种方法是throws DAOException(异常)

第二种方法是捕获异常----try catch()方法

11.数据库选用Mysql,SQLSERVER?为什么?如何倒入数据库?JAVA连接sqlserver需要哪些jar包?

选择SQL SERVER,安全性高,性能好.

如何倒入数据库?

右键数据库-然后附加数据库即可.

JAVA连接sqlserver需要哪些jar包?

mssqlserver.jar

12.简单的说一下B/S结构体系的优点?

B/S结构:(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。

B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。

一、B/S结构的优点
      B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
二、B/S架构软件的优势与劣势
      (1)维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
      (2)成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
      比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
      (3)应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

12.MVC模式分为哪三个组件,工作的核心?


Struts应用中包含3种组件:控制器组件(C)、模型组件(M)、和视图组件(V)。
控制器:ActionServlet(核心控制器)、自定义Action(代表一个用户操作)。
模型组件:定义和实现业务逻辑的接口和类。
视图组件:jsp页面、ActionForm和Struts标签。
ActionServet是Struts最核心的组件。在Web容器启动的时候,ActionServlet被初始化,加载struts-config.xml配置文件(这就是为什么当struts配置文件修改后要重启web容器)。

Struts处理请求的详细过程:

1)客户端浏览器发送请求到ActionServlet,ActionServlet根据请求的路径和struts-config.xml的配置信息找到对应的Action Bean 和 Form Bean 。如发送请求http://hocalhost:8080/myweb/register.do到服器,
ActionServlet就会根据struts配置信息找path属性为“/register”的Action Bean,于是找到RegisterAction,并得知RegisterAction的name属性为"memberForm",于是找到MemberForm的实例(如果不存在则创建)。

2)在确定将要调用的Action Bean 和 对应的Form Bean后,就将请求中的值填充到Form Bean 中(Action可以不关联任何ActionForm,这一步是可选的)。在调用Action的execute方法之前,ActionServlet还要准备好ActionMapping 参数,ActionMapping中包含了该Action的配置信息。

3)然后struts将请求分发至相应的 Action Bean 处理,ActionMapping参数,ActionForm参数,request 和 response都作为参数传给处理请求的Action Bena 的 execute 方法。

4)Action 调用业务逻辑方法,得到返回值,并返回ActionForward对象。

5)控制权重新回到 ActionServlet ,ActionServlet 很据 Action 返回的 ActionForward 对象转发到相应的jsp

6)处理结果返回给浏览器。。

注意的地方:
1) ActionServlet 将控制权转到页面的时候采用的是  转发  的方式
(    request.getRequestDispatcher(url).forward(request,response); ),所以转发到页面的request 和 Action 方法参数中的 request 是同一个请求,数据可以通过 request  对象的 attribute  属性传递。

2)当需要重定向的方式转到新的页面的时候,可以再 Action 代码中使用
(     response.sendRedirect(url);  ) ,并返回 null 。

3)ActionForm 很据对应  Action 的 scope 属性配置不同而生命周期有所不同。一般,scope 属性设为
request, 则每次请求开始时 ActionServlet 创建新的  ActionForm 对象,保存在 request  对象的 attribute
属性中。所以可以在 Action  代码中设置 ActionForm 的值 ,在页面中取出。 

13.静态页面和动态页面的区别?

静态页面页面不能动态显示数据,也就是说和数据库没有关系,只是信息写死在页面,无法实现实时更新的效果.

动态页面是随着数据库的变化而变化,从而达到了数据的实时性.

14.如何实现的页面间的跳转?

简略回答就是通过forward进行跳转.

详细解答就需要从页面请求开始一直到响应页面,就是通常说的找代码.Struts的跳转是通过.do请求,然后根据请求在struts里面找到响应的请求,根据请求就可以看到下面的forward转向页面是哪一个,通常有成功页面和错误页面,只要看标示就可以,例如;而jsp页面则可以直接转向,form表单上面直接写明了请求的jsp页面.

15.如何设置背景颜色,字体大小?

这是设置背景图片

这是设置背景颜色

以上两种是对整个页面进行设置,如果对于td和tr来讲也是同理,运用backgroundbgcolor即可.

16.设置文本框的代码?

17.打开数据库,找到某某表,如果我更改某个数据,某个表里的哪个值会改变?

从开始菜单--所有程序-Microsoft SQL server-企业管理器-找到数据库那一层---找到自己的数据库-双击表--了解自己数据库中有几张表,各个字段都代表什么意思.

18.购物篮是不是用SESSION做的?

答案:是用session做的.购物车主要是通过session进行操作,和数据库没有关系.

19.删除一条记录用什么方法?怎样实现用户登录的验证是怎样的。

利用传递主键的方法,也就是delete from 表名 where 主键=传递过来的主键的值.

利用select * from 用户信息表 where 用户名=”” and 密码=””,如果有数据则登陆成功

20.java链接sqlserver的代码是什么?

try {

conn = DriverManager

.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookTable;user=sa;password=sa");

stmt = conn.createStatement(1004, 1007);

rs = stmt.executeQuery(sql);

} catch (SQLException ex) {

System.err.println(ex.getMessage());

}

return rs;

本文来源:https://www.2haoxitong.net/k/doc/814a66a183c758f5f61fb7360b4c2e3f572725bb.html

《软件工程答辩常见问题总结.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式