<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
JSP方面1、forward和redirect的区别答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。2、jsp有哪些内置对象?作用分别是什么?答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): request 对象表示一个HTTP请求response 对象存储处理结果返回给用户的响应。out 对象用于将内容写入JSP页面实例的输出流中pageContext 对象描述某个JSP文档的运行环境,此外,它还实现将控制权从当前页面传输至其他页面的方法session 对象在用户访问一个Web站点的多个页面时共享信息application 对象存储运行文档的环境的有关信息 config 对象将Servlet配置数据以Servlet的初始化参数形式存储 page 对象表示JSP网页本身,更是Servlet类的实例,可以调用由Servlet类定义的任何方法exception 针对错误网页,未捕捉的例外 ,只适用于JSP错误页面3、jsp有哪些动作?作用分别是什么?答:JSP共有以下7种基本动作jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:它用来实例化JavaBean,或者定位一个已经存在的Bean实例,并且把它赋给一个变量名(或者id)。并给定一个具体的范围来确定对象的生命周期。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记jsp:param:为其他标签提供附加信息。4、JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用jsp:include动作实现<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>5、两种跳转方式分别是什么?有什么区别?答:有两种,分别为:<jsp:include page="included.jsp" flush="true"><jsp:forward page= "nextpage.jsp"/>前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。代码和编程1、写一个Singleton出来Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->public class Singleton {private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪? //注意这是private 只供内部调用 private static Singleton instance = new Singleton(); //这里提供了一个供外部访问本class的静态方法,可以直接访问 public static Singleton getInstance() { return instance; } } 第二种形式: <!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->public class Singleton { private static Singleton instance = null; public static synchronized Singleton getInstance() { //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 //使用时生成实例,提高了效率! if (instance==null) instance=new Singleton();return instance; } } 其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些 2、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?答:Server端程序: <!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> package test;importjava.net.* ;importjava.io.* ;publicclass Server{private ServerSocketss;private Socketsocket;private BufferedReaderin;private PrintWriterout;public Server(){try {ss =newServerSocket(10000 );while(true ){socket= ss.accept();StringRemoteIP= socket.getInetAddress().getHostAddress();StringRemotePort=":"+ socket.getLocalPort();System.out.println("Aclientcomein!IP:"+RemoteIP+ RemotePort);in=newBufferedReader(new InputStreamReader(socket.getInputStream()));Stringline = in.readLine();System.out.println("Cleintsendis:"+ line);out=newPrintWriter(socket.getOutputStream(),true );out.println("YourMessageReceived!" );out.close();in.close();socket.close();}}catch (IOExceptione){out.println("wrong" );}}publicstaticvoid main(String[]args){new Server();}};
Client端程序:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package test;import java.io.*;
import java.net.*;
public class Client
{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client()
{
try
{
System.out.println("Try to Connect to 127.0.0.1:10000");
socket = new Socket("127.0.0.1",10000);
System.out.println("The Server Connected!");
System.out.println("Please enter some Character:");
BufferedReader line = new BufferedReader(new
InputStreamReader(System.in));
out = new PrintWriter(socket.getOutputStream(),true);
out.println(line.readLine());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
out.close();
in.close();
socket.close();
}catch(IOException e)
{
out.println("Wrong");
}
}
public static void main(String[] args)
{
new Client();
}
};
3、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口?
答:用插入法进行排序代码如下
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;importjava.util.*;classInsertSort{ArrayListal;publicInsertSort(intnum,intmod){al=newArrayList(num);Randomrand=newRandom();System.out.println("TheArrayListSortBefore:");for(inti=0;i<num;i++){al.add(newInteger(Math.abs(rand.nextInt())%mod+1));System.out.println("al["+i+"]="+al.get(i));}}publicvoidSortIt(){IntegertempInt;intMaxSize=1;for(inti=1;i<al.size();i++){tempInt=(Integer)al.remove(i);if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()){al.add(MaxSize,tempInt);MaxSize++;System.out.println(al.toString());}else{for(intj=0;j<MaxSize;j++){if(((Integer)al.get(j)).intValue()>=tempInt.intValue()){al.add(j,tempInt);MaxSize++;System.out.println(al.toString());break;}}}}System.out.println("TheArrayListSortAfter:");for(inti=0;i<al.size();i++){System.out.println("al["+i+"]="+al.get(i));}}publicstaticvoidmain(String[]args){InsertSortis=newInsertSort(10,100);is.SortIt();}}
4、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
答:代码如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;classSplitString{StringSplitStr;intSplitByte;publicSplitString(Stringstr,intbytes){SplitStr=str;SplitByte=bytes;System.out.println("TheStringis:'"+SplitStr+"';SplitBytes="+SplitByte);}publicvoidSplitIt(){intloopCount;loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte+1);System.out.println("WillSplitinto"+loopCount);for(inti=1;i<=loopCount;i++){if(i==loopCount){System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));}else{System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));}}}publicstaticvoidmain(String[]args){SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人0ewldfls=103",4);ss.SplitIt();}}
5、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.
答:程序如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagehello.ant;importjava.sql.*;publicclassjdbc{StringdbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";StringtheUser="admin";StringthePw="manager";Connectionc=null;Statementconn;ResultSetrs=null;publicjdbc(){try{Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();}catch(Exceptione){e.printStackTrace();}}publicbooleanexecuteUpdate(Stringsql){try{conn.executeUpdate(sql);returntrue;}catch(SQLExceptione){e.printStackTrace();returnfalse;}}publicResultSetexecuteQuery(Stringsql){rs=null;try{rs=conn.executeQuery(sql);}catch(SQLExceptione){e.printStackTrace();}returnrs;}publicvoidclose(){try{conn.close();c.close();}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){ResultSetrs;jdbcconn=newjdbc();rs=conn.executeQuery("select*fromtest");try{while(rs.next()){System.out.println(rs.getString("id"));System.out.println(rs.getString("name"));}}catch(Exceptione){e.printStackTrace();}}}
6、用jdom解析xml文件时如何解决中文问题?如何解析?
答:看如下代码,用编码方式加以解决
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;importjava.io.*;publicclassDOMTest{privateStringinFile="c:\\people.xml";privateStringoutFile="c:\\people.xml";publicstaticvoidmain(Stringargs[]){newDOMTest();}publicDOMTest(){try{javax.xml.parsers.DocumentBuilderbuilder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();org.w3c.dom.Documentdoc=builder.newDocument();org.w3c.dom.Elementroot=doc.createElement("老师");org.w3c.dom.Elementwang=doc.createElement("王");org.w3c.dom.Elementliu=doc.createElement("刘");wang.appendChild(doc.createTextNode("我是王老师"));root.appendChild(wang);doc.appendChild(root);javax.xml.transform.Transformertransformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"gb2312");transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,"yes");transformer.transform(newjavax.xml.transform.dom.DOMSource(doc),newjavax.xml.transform.stream.StreamResult(outFile));}catch(Exceptione){System.out.println(e.getMessage());}}}
7、将一个键盘输入的数字转化成中文输出
(例如:输入:1234567输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段程序实现!
8、如何校验数字型?
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> publicclass Reader{private StringstrNum;private StringstrNumChFormat;private StringstrNumTemp;privateint intNumLen;private StringstrBegin;public Reader(StringstrNum){this.strNum= strNum;}publicboolean check(StringstrNum){booleanvalid=false ;if(strNum.substring(0,1).equals("0" )){this.strNum=strNum.substring(1 );}try {new Double(strNum);valid=true ;}catch (NumberFormatExceptionex){System.out.println("Badnumberformat!" );}return valid;}publicvoid init(){strNumChFormat="" ;intNumLen= strNum.length();strNumTemp= strNum;strNumTemp=strNumTemp.replace('1','一' );strNumTemp=strNumTemp.replace('2','二' );strNumTemp=strNumTemp.replace('3','三' );strNumTemp=strNumTemp.replace('4','四' );strNumTemp=strNumTemp.replace('5','五' );strNumTemp=strNumTemp.replace('6','六' );strNumTemp=strNumTemp.replace('7','七' );strNumTemp=strNumTemp.replace('8','八' );strNumTemp=strNumTemp.replace('9','九' );
