javaBean의 기초 지식 및 흔한 디코딩 해결 방법
4461 단어 javaBean기초 지식마구잡이로 해결하다
디코딩 문제는 자바 웹 개발자들이 모두 겪은 문제일 것이다. 이 문제는 당시에 내가 자바를 배우는 데 영향을 주었고 심지어 포기하고 싶은 생각도 있었다. 어쩔 수 없었다. 그때는 젊었다. 하하.사실 디코딩 문제가 생기는 원인은 매우 많고, 디코딩 문제를 해결하는 문제도 매우 많은데, 지금 와서 한번 봅시다.
스팸이 발생한 곳은 크게 다음과 같은 세 가지로 나눌 수 있다.
1 jsp 페이지
2 jsp 페이지 사이의 상호 참조 매개 변수
3 데이터베이스에서의 데이터 액세스
솔루션은 크게 세 가지로 나눌 수 있습니다.
1 jsp 페이지에 나타나는 것은 jsp 페이지의 중국어 문자 인코딩을 설정하지 않았기 때문입니다.
2 jsp 페이지 사이에 서로 참조하는 것은 매개 변수가 정확한 문자 인코딩을 설정하지 않았기 때문입니다.
3 이상 두 가지 문제가 해결되면 데이터베이스에 저장하면 자연스레 코드가 존재하지 않는다.데이터베이스에 저장된 데이터를 다시 인코딩하지 않으면
구체적인 해결 방법:
1. 폼 페이지 헤더에서 문자 인코딩을utf-8로 설정
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
게다가 이 해결 jsp 페이지의 중국어 디코딩 디스플레이는tomcat을 컴파일한 후 클라이언트에게 출력하는 html 파일은 중국어 인코딩을 사용하지 않기 때문에 디코딩이 발생할 수 있습니다.2.페이지 요청 및 응답에 대한 인코딩을 설정하려면:
<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); %>
게다가 이 문장은 jsp 페이지의 중국어 매개 변수 전달 코드를 해결합니다.브라우저에서 기본적으로 사용하는 인코딩을 "UTF-8"전송 요청 매개 변수로 설정합니다.3.String(request.getParameter("name").getBytes("ISO8859_1"),"utf-8");이 문장은 전달된 매개 변수를 모두 인코딩하여utf-8로 변환한다는 뜻이다. 이렇게 하는 단점은 매번 전달된 매개 변수를 이렇게 써야 하기 때문에 매우 번거롭다는 것이다.
서버를 설정할 수도 있습니다.xml 프로필을 실행합니다.
< Connector
port ="8080"
maxHttpHeaderSize ="8192"
maxThreads ="150"
minSpareThreads ="25"
maxSpareThreads ="75"
enableLookups ="false"
redirectPort ="8443"
acceptCount ="100"
connectionTimeout ="20000"
disableUploadTimeout ="true"
URIEncoding ="utf-8"/>
하지만 이렇게 하면 전체 웹 앱에 적용됩니다.4. 웹도 수정할 수 있다.xml 파일, 필터 설정.그 원리는 모두 같지만, 단지 방식을 바꿀 뿐이다
1. 필터 클래스 작성:
package org.RN.util;
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 Encoding implements Filter {
@SuppressWarnings("unused")
private FilterConfig config=null;
String encoding=null;
public void destroy() {
this.encoding=null;
this.config=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null)
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
this.config=arg0;
this.encoding=arg0.getInitParameter("encoding");
}
}
2.웹에서xml 구성
<filter>
<description> </description>
<filter-name>Encoding </filter-name>
<filter-class>
filter.Encoding
</filter-class>
</filter>
<filter-mapping>
<filter-name>Encoding </filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
</filter>
5. 또 하나의 흔한 디코딩 문제는 다운로드할 때 파일 이름의 디코딩이 발생하는 것이다다운로드를 처리하는 코드는 다음과 같습니다.
response.setHeader("Content-Disposition", "attachment; filename="+ java.NET.URLEncoder.encode(fileName, "UTF-8"));
URLEncoder 클래스는 문자열을 응용 프로그램/x-www-form-urlencoded MIME 형식으로 변환하는 정적 방법을 포함합니다.
URLDecoder와 URLEncoder 클래스에 대응하는 URLDecoder 클래스는 두 가지 정적 방법이 있습니다.그것들은 x-www-form-url-encoded 형식으로 인코딩된string을 디코딩합니다.즉, 모든 더하기 기호(+)를 공백 문자로 변환하고, 모든% x x를 이에 대응하는 문자로 변환합니다.
JavaBean은 JAVA 언어로 재사용 가능한 구성 요소입니다.자바빈으로 쓰기 위해서는 클래스가 구체적이고 공공적이며 매개 변수가 없는 구조기가 있어야 한다.JavaBean은 일관성 있는 디자인 모델을 제공하는 공통적인 방법으로 내부 도메인에 구성원 속성을 노출합니다.모두가 알다시피 속성 이름은 이런 모델에 부합되고 다른 Java 클래스는 자신의 메커니즘을 통해 이러한 JavaBean 속성을 발견하고 조작할 수 있다.
자바빈의 임무는 바로'Write once,run anywhere,reuse everywhere', 즉'일회성 작성, 어디서든 실행, 어디서든 재사용'이다.이것은 사실상 소프트웨어 산업을 괴롭히는 날로 증가하는 복잡성을 해결하고 간단하고 치밀하며 우수한 문제 해결 방안을 제공하는 것이다.
JavaBean의 범위 Scope는 수명 시간이 있는 변수입니다.JavaBean의 범위는
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Openssh 원격 연결 서버Openssh 원격 연결 서버 SSH(Secure Shell) 버전 정보 SSH2 작동 메커니즘 서버 sshd Ubuntu 설치 & 시작 CentOS 업데이트 & 시작 sshd가 프로세스에 있는지 확인 ssh 버전 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.