范文资料网>人事资料>招聘与面试>《苏宁1500工程面试问题

苏宁1500工程面试问题

时间:2022-04-05 08:56:35 招聘与面试 我要投稿
  • 相关推荐

苏宁1500工程面试问题

介绍自己之前所做过的项目,并详细说明在其中担任的角色和职责。

苏宁1500工程面试问题

最近一次的项目需求是如何的?

平台主要使用技术;

简述一下spring、struts、hibernate这三大框架

hibernate: 1) 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3)hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

4)hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各 种复杂关系。

struts: struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式 struts2是基于webwork技术的框架,struts2和struts1没有任何关系,是一个全新的框架 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。 核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。 业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时, 还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用 Struts1 要求 Action 类继承一个抽象基类. Struts1 的一个普遍的问题是使用抽象类编程而不是接口 - Struts2 Action 类可以实现一个 Action 接口,也可实现其他的接口,使可选和定制的服务称为可能. Struts1 Action 是单例的模式并且必须是线程安全的 Struts2 Action 对象为每一个请求产生一个实例,因此 没有线程安全的问题 Struts1 Action 依赖于 Servlet API,因为当一个Action被调用 HttpServletRequest 和 HttpServletResponse 被传递给 execute() 方法 - Struts2 Action 不依赖于容器,允许 Action 脱离容器单独的被测试.如果需要的话 Struts2 Action 仍然可以访问初始的 request 和 response 但是,其他的元素减少或者消除了直接访问 HttpServletRequest 和 HttpServletResponse 的必要性

spring: spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注入)和AOP(面向切面编程)

用到SPRING什么特性,注入方法,如何实现;

1>方便解耦,简化开发 2>AOP编程的支持 3>声明式事务的支持 spring的注入方法 1>stter注入 2>静态工厂注入 3>实例工厂注入 4>构造器注入 5>集合注入 6>接口注入

spring特性:

◆方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

◆AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

◆声明式事务的支持 在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

◆方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。

◆方便集成各种优秀框架 Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。

◆降低Java EE API的使用难度 Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

◆Java 源码是经典学习范例 Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果

3.2.1 接口注入(interf-ace injection)

接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入。结合前面的示例,其具体步骤如下。

(1)编写一个接口IBusiness,各种数据库的注入将通过这个接口进行。http://cankao.gcw818.com的示例代码如下:

//******* http://cankao.gcw818.com

}

(2)任何想要使用数据库实例的类都必须实现这个接口,业务逻辑类Business实现这个接口IBusiness。http://cankao.gcw818.com的示例代码如下:

//******* http://cankao.gcw818.com

http://cankao.gcw818.com

}

……

//根据注入的数据库类,从×××数据库中获取数据

public void getData() {

……

http://cankao.gcw818.com();

……

}

}

(3)编写测试类TestBusiness。http://cankao.gcw818.com的示例代码如下:

//******* http://cankao.gcw818.com

public class TestBusiness {

private Business business = new Business();

……

//根据注入的数据库类,从Oracle数据库中获取数据

public void getData() {

……

business. createDI (new OracleDataBase());

http://cankao.gcw818.com();

……

}

}

如果要完成依赖关系注入的对象,必须实现IBusiness接口。

3.2.2 Set注入(setter injection)

Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个Set方法来接受DataBase的注入。http://cankao.gcw818.com的示例代码如下:

//******* http://cankao.gcw818.com

public class Business {

private DataBase db;

public void setDataBase(DataBase db) {

http://cankao.gcw818.com

}

……

//根据注入的数据库类,从×××数据库中获取数据

public void getData() {

……

http://cankao.gcw818.com();

……

}

}

更详细的代码,可以参看3.1节的第二个例子,采用的就是Set注入的方式。

3.2.3 构造注入(constructor injection)

构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。为了让类Business接受DataBase的注入,需要为它定义一个构造方法,来接受DataBase的注入。http://cankao.gcw818.com的示例代码如下:

//******* http://cankao.gcw818.com

public class Business {

private DataBase db;

public Business (DataBase db) {

http://cankao.gcw818.com

}

……

//根据注入的数据库类,从×××数据库中获取数据

public void getData() {

……

http://cankao.gcw818.com();

……

}

}

STRUST、STRUTS2原理;

客户端发送请求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet根据http://cankao.gcw818.com里的映射关系找到对就的Action,若找不到就返回500错误到JSP页面。若有就Action里的 excute()方法里执行相应的逻辑操作,比如调用Model层的方法,然后通过ActionForward,跳转到对应的输出页面

struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说

struts2是struts1和Webwork结合的产物。

struts2 的工作原理图:

一个请求在Struts2框架中的处理分为以下几个步骤:

1.客户端发出一个指向servlet容器的请求(tomcat);

2.这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。

3.过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2

的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一

些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,

Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找请求中

需要用到的Action。

4.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action

的代理对象

。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

http://cankao.gcw818.com创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了

Action的执行状态,或者说它控制的Action的执行步骤。它持有Action实例和所有的Interceptor。

http://cankao.gcw818.com实例使用命名模式来调用,1. ActionInvocation初始化时,根据配置,加载Action相

关的所有Interceptor。2. 通过http://cankao.gcw818.com方法调用Action实现时,执行Interceptor。在

调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

7. 一旦Action执行完毕,ActionInvocation负责根据http://cankao.gcw818.com中的配置找到对应的返回结果。返回结果

通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

如何实现多线程?

在Java当中实现多线程通常有两种方法。 第一,创建一个类,继承Thread类,并复写run方法。需要启动一个新的线程时,首先创建该类的对象, 然后调用start()方法,就可以使新线程进入就绪状态; 第二,创建一个类,实现Runnable接口,并实现该接口当中的run方法。需要启动一个新的线程时, 首先创建一个该类的对象,调用Thread类的构造函数,将该对象作为构造函数的参数传递进去, 然后再调用Thread对象的start()方法,就可以使新线程进入就绪状态。 两都区别:从本质上讲,Runnable是JAVA语言中用以实现线程的接口,任何实现线程功能的类都必须实现这个接口。 Thread类就是因为实现了Runnable接口,所以继承它的类才具有了相应的线程功能。但是由于在java语言中, 只能继承一个类,如果用户定义的类已经继承了其他类,就无法再继承Thread类,也就无法使用线程, 于是java语言为用户提供了一个接口,http://cankao.gcw818.com,实现Runnable这个接口与继承Thread类具有相同的效果, 通过实现这个接口就可以使用线程。

如何处理前端请求;

很多方法啊。用JSP、ACTION、SERVLET都可以某个方法的常用命令,如MAVON

Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp 3. 编译源代码: mvn compile 4. 编译测试代码:mvn test-compile 5. 运行测试:mvn test 6. 产生site:mvn site 7. 打包:mvn package

8. 在本地Repository中安装jar:mvn install 9. 清除产生的项目:mvn clean 10. 生成eclipse项目:mvn eclipse:eclipse 11. 生成idea项目:mvn idea:idea 12. 组合使用goal命令,如只打包不测试:mvn -Dtest package 13. 编译测试的内容:mvn test-compile 14. 只打jar包: mvn jar:jar 15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile ( -skipping 的灵活运用,当然也可以用于其他组合命令) 16. 清除eclipse的一些系统设置:mvn eclipse:clean ps:

spring管理struts2产生的bean是单类还是多类;

Struts2 会对每一个请求,产生一个Action的实例来处理. Spring的Ioc容器管理的bean默认是单实例的 如果spring来管理struts2的bean,需要 spring中bean的作用域设为prototype或者是sessionhibernet有几个版本,用过的版本是;Hibernate有几个缓存?-一级缓存、二级缓存Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类: 内置缓存和外置缓存。 一级缓存: Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存 SessionFactory的外置缓存也被称为Hibernate的第二级缓存spring特征、好处,和ioc & aop用到哪里的好处;spring最大的作用是ioc/di,将类与类之间的依赖关系写在配置文件中,当程序运行时自动加载依赖的类,从而降低了类与类之间的耦合度.再说说他的原理就ok了,还有一个作业是aop,其机理来源于代理模式,再把代理模式的原理说下就应该能过ioc就是控制翻转或依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。

aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,每一次调用这个方法的时候,就加上生成日志的操作。说的不是很清晰,多写多看就能明白了。

Spring里事物传播机制有几种?

我们用Spring时,很多时候都会用到他的声明式事务,简单的在配置文件中进行一些规则配置,利用Spring的AOP功能就能轻松搞定事务问题;这里面就涉及到一个事务的传播属性问题

【Propagation】,他在TransactionDefinition接口中定义,有兴趣可以看看src,共有7种选项可用:

PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚。 现在结合一个实例,应用以上各种传播属性来进行说明:首先声明两个bean:ServiceA和ServiceB,其中ServiceB被引用;

view plaincopy to clipboardprint?

ServiceA {

void methodA() {

http://cankao.gcw818.com();

}

}

ServiceB {

void methodB() {

// ...

}

}

view plaincopy to clipboardprint?

ServiceA {

void methodA() {

http://cankao.gcw818.com();

}

}

ServiceB {

void methodB() {

// ...

}

}

ServiceA {

void methodA() {

http://cankao.gcw818.com();

}

}

ServiceB {

void methodB() {

// ...

}

} 接下来,我们就一一分析下:

PROPAGATION_REQUIRED

加入当前正要执行的事务不在另外一个事务里,那么就起一个新的事务;如说,比

http://cankao.gcw818.com的事务级别定义为PROPAGATION_REQUIRED, 那么由于执行http://cankao.gcw818.com的时候, http://cankao.gcw818.com已经起了事务,这时调用http://cankao.gcw818.com,http://cankao.gcw818.com看到自己已经运行在http://cankao.gcw818.com的事务内部,就不再起新的事务。而假如http://cankao.gcw818.com运行的时候发现自己没有在事务中,他就会为自己分配一个事务。 这样,在http://cankao.gcw818.com或者在http://cankao.gcw818.com内的任何地方出现异常,事务都会被回滚。即使http://cankao.gcw818.com的事务已经被 提交,但是http://cankao.gcw818.com在接下来fail要回滚,http://cankao.gcw818.com也要回滚。

PROPAGATION_SUPPORTS

如果当前在事务中,即以事务的形式运行,如果当前不再一个事务中,那么就以非事务的形式运行。

PROPAGATION_MANDATORY

必须在一个事务中运行。也就是说,他只能被一个父事务调用。否则,他就要抛出异常。 PROPAGATION_REQUIRES_NEW

比如我们设计http://cankao.gcw818.com的事务级别为PROPAGATION_REQUIRED,http://cankao.gcw818.com的事务级别为PROPAGATION_REQUIRES_NEW, 那么当执行到http://cankao.gcw818.com的时候,http://cankao.gcw818.com所在的事务就会挂起,http://cankao.gcw818.com会起一个新的事务,等待http://cankao.gcw818.com的事务完成以后, 他才继续执行。他与PROPAGATION_REQUIRED 的事务区别在于事务的回滚程度了。因为http://cankao.gcw818.com是新起一个事务,那么就是存在 两个不同的事务。如果http://cankao.gcw818.com已经提交,那么http://cankao.gcw818.com失败回滚,http://cankao.gcw818.com是不会回滚的。如果http://cankao.gcw818.com失败回滚, 如果他抛出的异常被http://cankao.gcw818.com捕获,http://cankao.gcw818.com事务仍然可能提交。

PROPAGATION_NOT_SUPPORTED

当前不支持事务。比如http://cankao.gcw818.com的事务级别是PROPAGATION_REQUIRED ,而http://cankao.gcw818.com的事务级别是PROPAGATION_NOT_SUPPORTED, 那么当执行到http://cankao.gcw818.com时,http://cankao.gcw818.com的事务挂起,而他以非事务的状态运行完,再继续http://cankao.gcw818.com的事务。

PROPAGATION_NEVER

不能在事务中运行。假设http://cankao.gcw818.com的事务级别是PROPAGATION_REQUIRED, 而http://cankao.gcw818.com的事务级别是PROPAGATION_NEVER, 那么http://cankao.gcw818.com就要抛出异常了。 PROPAGATION_NESTED

理解Nested的关键是savepoint。他与PROPAGATION_REQUIRES_NEW的区别是,PROPAGATION_REQUIRES_NEW另起一个事务,将会与他的父事务相互独立, 而Nested的事务和他的父事务是相依的,他的提交是要等和他的父事务一块提交的。也就是说,如果父事务最后回滚,他也要回滚的。 而Nested事务的好处也是他有一个savepoint:

view plaincopy to clipboardprint?

ServiceA {

void methodA() {

try {

http://cankao.gcw818.com();

} catch (Exception e) {

// 执行其他业务

http://cankao.gcw818.com();

}

}

}

view plaincopy to clipboardprint? ServiceA {

void methodA() {

try {

http://cankao.gcw818.com();

} catch (Exception e) {

}

}

}也就是说http://cankao.gcw818.com失败回滚,那么http://cankao.gcw818.com会回滚到savepoint点上,http://cankao.gcw818.com可以选择另外一个分支,比如 http://cankao.gcw818.com,继续执行,来尝试完成自己的事务;但是这个事务并没有在EJB标准中定义。

list是有序还是无序的;

有序

架构;做多数据源查询时,用event如何处理;

数组2万,a【,,,,,...】中2个相同的怎么检索出来;

DBI事物有哪些特征;

如何检索出一堆数据中相同的记录并删掉相同的只留一条记录 DELETE FROM t

WHERE EXISTS (SELECT 1

FROM (SELECT MIN(ROWID) AS mrowid FROM t GROUP BY col1, col2) t2 WHERE http://cankao.gcw818.com!= http://cankao.gcw818.com);

数据库的区别有哪些?

数据库中的事物有什么特性?-原子性、一致性、隔离性、持久性 隔离的级别?

Error和exception区别

Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如, 内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。Exception(违例)表示需要捕捉或者需要 程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题, 是程序必须处理的。

运行时异常和一般化异常的区别

一般异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

常见运行时异常有哪几种

索引的概念?索引是否越多越好?

使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构 1.索引占用磁盘空间,并且降低添加、删除和更新行的速度

主键索引和唯一索引的区别?

PRIMARY KEY 主键列不允许空值。

唯一索引允许空值

创建 PRIMARY KEY 或 UNIQUE 约束会自动为指定的列创建唯一索引。创建 UNIQUE 约束和创建独立于约束的唯一索引没有明显的区别。数据验证的方式是相同的,而且查询优化器不会区分唯一索引是由约束创建的还是手动创建的。但是,如果您的目的是要实现数据完整性,则应为列创建 UNIQUE 或 PRIMARY KEY 约束。这样做才能使索引的目标明确赞同8| 评论 Xml的解级方式和其优缺点?

xml常用的四种解析方式:

1)DOM(Document Object Model)

文档对象模型分析方式。以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分。是W3C的官方标准。

优点:

1、允许应用程序对数据和结构做出更改。

2、访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。

缺点:

1、通常需要加载整个XML文档来构造层次结构,消耗资源大

2)SAX(Simple API for XML)

流模型中的推模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成。

优点:

1、不需要等待所有数据都被处理,分析就能立即开始。

2、只在读取数据时检查数据,不需要保存在内存中。

3、可以在某个条件得到满足时停止解析,不必解析整个文档。

4、效率和性能较高,能解析大于系统内存的文档。

缺点:

1、需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),使用麻烦。

2、单向导航,很难同时访问同一文档的不同部分数据,不支持XPath。

3)JDOM(Java-based Document Object Model)

Java特定的文档对象模型。自身不包含解析器,使用SAX。

优点:

1、使用具体类而不是接口,简化了DOM的API。

2、大量使用了Java集合类,方便了Java开发人员。

缺点:

1、没有较好的灵活性。

2、性能较差。

4)DOM4J(Document Object Model for Java)

简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP。

优点:

1、大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。

2、支持XPath。

3、有很好的性能。

缺点:

1、大量使用了接口,API较为复杂。

页面中的乱码该如何解决?

一、JSP页面显示乱码

二、表单提交中文时出现乱码

三、数据库连接时出现乱码

大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。

一、JSP页面显示乱码

下面的显示页面(http://cankao.gcw818.com)就出现乱码:

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<%

http://cankao.gcw818.com("JSP的中文处理");

%>

</body>

</html>

对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(utf-8),即在页面的第一行加上:

英文代码<%@ page contentType="text/html; charset=utf-8"%>

就可以消除乱码了。完整页面如下:

<%@ page contentType="text/html; charset=utf-8"%>

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<%

http://cankao.gcw818.com("JSP的中文处理");

%>

</body>

</html>

二、表单提交中文时出现乱码

下面是一个提交页面(http://cankao.gcw818.com),代码如下:

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<form name="form1" method="post" action="http://cankao.gcw818.com">

<div align="center">

<input type="text" name="name">

<input type="submit" name="Submit" value="Submit">

</div>

</form>

</body>

</html>

下面是处理页面(http://cankao.gcw818.com)代码:

<%@ page contentType="text/html; charset=utf-8"%>

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<%=http://cankao.gcw818.com("name")%>

</body>

</html>

如果http://cankao.gcw818.com提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和utf-8编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过http://cankao.gcw818.com("utf-8")对请求进行统一编码,就实现了中文的正常显示。修改后的http://cankao.gcw818.com代码如下:

<%@ page contentType="text/html; charset=utf-8"%>

<%

http://cankao.gcw818.com("utf-8");

%>

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head>

<body>

<%=http://cankao.gcw818.com("name")%>

</body>

</html>

Java中的多态如何实现?

数据的传输时如何实现的?

J2EE的技术标准