此問題可以通過FILTER來解決
成都創(chuàng)新互聯(lián)專注于會寧企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)。會寧網(wǎng)站建設(shè)公司,為會寧等地區(qū)提供建站服務(wù)。全流程按需設(shè)計網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
public void init(FilterConfig config) throws ServletException
{
this.requestEncoding = config.getInitParameter("requestEncoding");
this.requestEncoding = ((this.requestEncoding == null) ? "utf-8" : this.requestEncoding);
this.responseEncoding = config.getInitParameter("responseEncoding");
}
頁面的編碼方式后臺需要處理,如果不想每一個頁面單獨處理可以配置一個filter將字符集更改下,中文問題就解決了
既然你問了,就給你說明白點:
*******************
String str="abc"; * 這種情況是引用數(shù)據(jù)類型,引用數(shù)據(jù)類型肯定存放在堆中 棧中放置的是參數(shù)變量而不能放對象 對象只能放在堆中
*******************
它只創(chuàng)建一個對象 在堆中創(chuàng)建一個對String類的對象引用變量str(引用變量肯定是存放在堆里的),然后查找棧中是否有"abc",若沒有則將"abc"存放進棧,并令str指向"abc",若已經(jīng)存在則直接令str指向"abc".(也就是說引用變量本身只能存放在堆中 它的值是所指向的字符串a(chǎn)bc 它的地址存放在棧中) 它創(chuàng)建多個"abc"字符串在內(nèi)存中其實只存在一個對象而已,這樣有利于節(jié)省內(nèi)存空間同時在一定程度上提高程序運行速度
******************************
String str=new String("abc");* 所有通過new操作符的操作都是在堆完成的
******************************
它創(chuàng)建兩個對象 abc對象和str引用對象 兩個必須存放在堆中 str指向堆中的abc對象 也就是說 兩個對象和str的地址全部存放在堆中 因為使用了new操作符 所以下面的例子里str2,str3和str4即使是值都為abc因為str2的地址在棧中 str3和str4的地址各自開辟空間 所以他們的地址肯定不一樣了
但是它們的值是一樣的 那就是abc
*******
equals:* equals就是比較值 ==在基本類型里也是比較值 在引用類型里是比較地址 注意這個區(qū)別就OK了!
*******
表示堆中的引用變量的值是否相同(引用類型變量比較的是他們本身的值,本身的值是通過引用變量地址指向的對象或字符串來得到的,不管這個被指向的字符串或者對象是在棧中還是堆中)
****
==:*
****
表示堆中或者棧中的基本類型的值或者引用變量的地址是否相同(基本類型比較的是他們本身的值,引用類型變量比較的是地址)
當(dāng)equals為true時,==不一定為true;
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); //true
String str3=new String ("abc");
String str4 =new String ("abc");
System.out.println(str3==str4); // false
----------------------我是分割線---------------------------------
理解下堆和棧的區(qū)別
1、棧區(qū)(stack)— 由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。
2、堆區(qū)(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,
3、全局區(qū)(靜態(tài)區(qū))(static)—,全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。 - 程序結(jié)束后有系統(tǒng)釋放
4、文字常量區(qū)—常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放
5、程序代碼區(qū)—存放函數(shù)體的二進制代碼。
按照題目要求編寫的用javaBean規(guī)范設(shè)計的學(xué)生類Student的Java程序如下
需要創(chuàng)建user.java.test包,把Student.java文件和Test.java文件放入包中,編譯Student.java文件并且編譯運行Test.java文件得到運行結(jié)果
Student.java文件代碼如下
package user.java.test;
import java.io.Serializable;
public class Student implements Serializable{
private static final long serialVersionUID = 1L;
private String no;
private String name;
private double score;
public Student(){}
public Student(String no,String name,double score){
this.no=no;
this.name=name;
this.score=score;
}
public String getNo(){ return no;}
public void setNo(String no){ this.no=no;}
public String getName(){ return name;}
public void setName(String name){ this.name=name;}
public double getScore(){ return score;}
public void setScore(double score){ this.score=score;}
public String toString(){
return "學(xué)號:"+no+",姓名:"+name+",成績:"+score;
}
public static double getAvg(Student[] sArray){
double sum=0,avg;
for(int i=0;isArray.length;i++){
sum=sum+sArray[i].getScore();
}
avg=sum/sArray.length;
return avg;
}
}
Test.java文件代碼如下
package user.java.test;
public class Test{
public static void main(String[] args){
Student[] sArray=new Student[5];
sArray[0]=new Student("001","張三",89.5);
sArray[1]=new Student("002","李四",82.5);
sArray[2]=new Student("003","王五",93);
sArray[3]=new Student("004","趙六",73.5);
sArray[4]=new Student("005","孫七",66);
System.out.println("這些學(xué)生的平均分:"+Student.getAvg(sArray));
for(int i=0;isArray.length;i++){
System.out.println(sArray[i].toString());
}
}
}
package Project;
import java.util.Scanner;
public class Complex {
int x;
int y;
Complex(){
x=0;
y=0;
}
Complex(int i,int j){
x=i;
y=j;
}
//顯示
public void showComp(){
if(y0){
System.out.print(x+"+"+y+"i"+'\t');
}
if(y0){
System.out.print(x+""+y+"i"+'\t');
}
if(y==0){
System.out.print(x+""+'\t');
}
}
//求和
public static Complex addComp(Complex C1,Complex C2){
Complex newComplex=new Complex();
newComplex.x=C1.x+C2.x;
newComplex.y=C1.y+C2.y;
System.out.println();
System.out.print("和為:");
return newComplex;
}
//求差
public static Complex subComp(Complex C1,Complex C2){
Complex newComplex=new Complex();
newComplex.x=C1.x-C2.x;
newComplex.y=C1.y-C2.y;
System.out.println();
System.out.print("差為:");
return newComplex;
}
//求積
public static Complex multiComp(Complex C1,Complex C2){
Complex newComplex=new Complex();
newComplex.x=C1.x*C2.x-C1.y*C2.y;
newComplex.y=C1.x*C2.y+C1.y*C2.x;
System.out.println();
System.out.print("積為:");
return newComplex;
}
//是否相等
public static boolean equalComp(Complex C1,Complex C2){
System.out.println();
System.out.print("是否相等:");
return ((C1.x==C2.x)(C1.y==C2.y));
}
public static void main(String[] args){
Scanner data=new Scanner(System.in);
int x=data.nextInt();
int y=data.nextInt();
int m=data.nextInt();
int n=data.nextInt();
Complex Comp1=new Complex(x,y);
Complex Comp2=new Complex(m,n);
data.close();
//顯示
Comp1.showComp();
Comp2.showComp();
Complex.addComp(Comp1,Comp2).showComp(); //顯示 和
Complex.subComp(Comp1, Comp2).showComp(); //顯示 差
Complex.multiComp(Comp1, Comp2).showComp(); //顯示 積
System.out.println( Complex.equalComp(Comp1, Comp2));
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TT {
/**
* @param args
*/
public static void main(String[] args) {
int R = -1;
int G = -1;
int B = -1;
while ( true ) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println("Enter R value:");
str = br.readLine();
R = Integer.parseInt(str);
if (R!=-1 (R = 0 R =255)) {
System.out.println("The R value is :"+R);
break;
} else
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
} catch(Exception e) {
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
}
}
while ( true ) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println("Enter G value:");
str = br.readLine();
G = Integer.parseInt(str);
if (G!=-1 (G = 0 G =255)) {
System.out.println("The G value is :"+G);
break;
} else
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
} catch(Exception e) {
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
}
}
while ( true ) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println("Enter B value:");
str = br.readLine();
B = Integer.parseInt(str);
if (B!=-1 (B = 0 B =255)) {
System.out.println("The B value is :"+B);
break;
} else
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
} catch(Exception e) {
System.out.println("please input valid INTEGER value and value should between 0 ~ 255");
}
}
String[] h=new String[256];
h[0]="00";h[1]="01";h[2]="02";h[3]="03";h[4]="04";h[5]="05";
h[6]="06";h[7]="07";h[8]="08";h[9]="09";h[10]="0A";h[11]="0B";
h[12]="0C";h[13]="0D";h[14]="0E";h[15]="0F";h[16]="10";h[17]="11";
h[18]="12";h[19]="13";h[20]="14";h[21]="15";h[22]="16";h[23]="17";
h[24]="18";h[25]="19";h[26]="1A";h[27]="1B";h[28]="1C";h[29]="1D";
h[30]="1E";h[31]="1F";h[32]="20";h[33]="21";h[34]="22";h[35]="23";
h[36]="24";h[37]="25";h[38]="26";h[39]="27";h[40]="28";h[41]="29";
h[42]="2A";h[43]="2B";h[44]="2C";h[45]="2D";h[46]="2E";h[47]="2F";
h[48]="30";h[49]="31";h[50]="32";h[51]="33";h[52]="34";h[53]="35";
h[54]="36";h[55]="37";h[56]="38";h[57]="39";h[58]="3A";h[59]="3B";
h[60]="3C";h[61]="3D";h[62]="3E";h[63]="3F";h[64]="40";h[65]="41";
h[66]="42";h[67]="43";h[68]="44";h[69]="45";h[70]="46";h[71]="47";
h[72]="48";h[73]="49";h[74]="4A";h[75]="4B";h[76]="4C";h[77]="4D";
h[78]="4E";h[79]="4F";h[80]="50";h[81]="51";h[82]="52";h[83]="53";
h[84]="54";h[85]="55";h[86]="56";h[87]="57";h[88]="58";h[89]="59";
h[90]="5A";h[91]="5B";h[92]="5C";h[93]="5D";h[94]="5E";h[95]="6F";
h[96]="60";h[97]="61";h[98]="62";h[99]="63";h[100]="64";h[101]="65";
h[102]="66";h[103]="67";h[104]="68";h[105]="69";h[106]="6A";h[107]="6B";
h[108]="6C";h[109]="6D";h[110]="6E";h[111]="6F";h[112]="70";h[113]="71";
h[114]="72";h[115]="73";h[116]="74";h[117]="75";h[118]="76";h[119]="77";
h[120]="78";h[121]="79";h[122]="7A";h[123]="7B";h[124]="7C";h[125]="7D";
h[126]="7E";h[127]="7F";h[128]="80";h[129]="81";h[130]="82";h[131]="83";
h[132]="84";h[133]="85";h[134]="86";h[135]="87";h[136]="88";h[137]="89";
h[138]="8A";h[139]="8B";h[140]="8C";h[141]="8D";h[142]="8E";h[143]="8F";
h[144]="90";h[145]="91";h[146]="92";h[147]="93";h[148]="94";h[149]="95";
h[150]="96";h[151]="97";h[152]="98";h[153]="99";h[154]="9A";h[155]="9B";
h[156]="9C";h[157]="9D";h[158]="9E";h[159]="9F";h[160]="A0";h[161]="A1";
h[162]="A2";h[163]="A3";h[164]="A4";h[165]="A5";h[166]="A6";h[167]="A7";
h[168]="A8";h[169]="A9";h[170]="AA";h[171]="AB";h[172]="AC";h[173]="AD";
h[174]="AE";h[175]="AF";h[176]="B0";h[177]="B1";h[178]="B2";h[179]="B3";
h[180]="B4";h[181]="B5";h[182]="B6";h[183]="B7";h[184]="B8";h[185]="B9";
h[186]="BA";h[187]="BB";h[188]="BC";h[189]="BD";h[190]="BE";h[191]="BF";
h[192]="C0";h[193]="C1";h[194]="C2";h[195]="C3";h[196]="C4";h[197]="C5";
h[198]="C6";h[199]="C7";h[200]="C8";h[201]="C9";h[202]="CA";h[203]="CB";
h[204]="CC";h[205]="CD";h[206]="CE";h[207]="CF";h[208]="D0";h[209]="D1";
h[210]="D2";h[211]="D3";h[212]="D4";h[213]="D5";h[214]="D6";h[215]="D7";
h[216]="D8";h[217]="D9";h[218]="DA";h[219]="DB";h[220]="DC";h[221]="DD";
h[222]="DE";h[223]="DF";h[224]="E0";h[225]="E1";h[226]="E2";h[227]="E3";
h[228]="E4";h[229]="E5";h[230]="E6";h[231]="E7";h[232]="E8";h[233]="E9";
h[234]="EA";h[235]="EB";h[236]="EC";h[237]="ED";h[238]="EE";h[239]="EF";
h[240]="F0";h[241]="F1";h[242]="F2";h[243]="F3";h[244]="F4";h[245]="F5";
h[246]="F6";h[247]="F7";h[248]="F8";h[249]="F9";h[250]="FA";h[251]="FB";
h[252]="FC";h[253]="FD";h[254]="FE";h[255]="FF";
String B16 = "#" + h[R] + h[G] + h[B];
System.out.println(B16);
}
}