利用JQuery和Servlet实现跨域提交请求示例分享_jquery
原理:JavaScript的Ajax不可以跨域,但是可以通过向本地的一个Servlet发出请求,由Servlet完成跨域。再把远程的结构返回给客户端。这样Ajax就可以跨域了。在后面,再发一个PHP版本的,请大家关注啊。下面是代码
JS代码:
注意:在Post方式时,param1和param2为向远程发送的参数值,可以有多个。
//GET方式
function reqeustCrossDomainProxyGet(){
var url = "http://www.baidu.com";//远程请求地址
var param = {'requesturl':url,'typedata':'JSON'};
var data = getCrossDomainProxyRemote(param,"json");
}
//Post方式
function reqeustCrossDomainProxyPost(param1,param2){
var url = apiServer+"/api/lucene/query";
var param = {'requesturl':url,'typedata':'JSON','param1':param1,'param2':param2};
var data = getCrossDomainProxyRemote(param,"json");
}
/**
* JS向本址的一个Servlet发送POST请求,所有关于远程请求的参数。
* 在此处参POST方式发送给Servlet
* @param param 远程请求参数
* @param rtype JS返回类型(暂时没有用到)
* @return
*/
function getCrossDomainProxyRemote(param,rtype){
var url = "/cross/proxy";//Servlet的URL地址
var returndata;
$.ajax({
url: url,type: 'POST',dataType: rtype,timeout: 40000,data:param, async:false,
error: function(response,error) {alert(response.status);},
success: function(data){returndata=data;}
});
return returndata;
}
Java代码:
public class CorssDomainProxy extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
boolean requestType = false;//标记远程请求类型,默认为GET方式
PrintWriter out = resp.getWriter();
Enumeration keys = req.getParameterNames();//取出客户端传入的所有参数名
ArrayList
String url=null;
while (keys.hasMoreElements()){
String key = (String) keys.nextElement();
/**
* 如果请求参数内有如下几种表示,这此参数不参与远程请求
*/
if(key.equals("requesturl")){//判断参数是否是,远程请求地址
url = req.getParameter(key);
}else if(key.equals("typedata")){//判断请求数据类型,暂时没有用到
}else if(key.equals("returntype")){//判断请求返回类型,暂时没有用到
}else{
params.add(key);//其它加入参数列表,此处为参与远程请求的参数
requestType = true;//修改标记,表求远程请求为POST方式
}
}
HttpClient client = new HttpClient();
HttpMethod method = null;
if(requestType){//判断请求方式,并实例化HttpMethod对象,true:POST,false:GET
method = new UTF8PostMethod(url);
for(String name : params){//迭代POST参数,加入到请求中
String _value = req.getParameter(name);
((PostMethod)method).setParameter(name,_value);
}
}else{
method = new GetMethod(url);
}
client.executeMethod(method);//执行请求
String bodystr = method.getResponseBodyAsString();//返回结果
out.println(bodystr);//将结果返回给客户端
}
/**
* 内部类,转换URL字符串为UTF-8
* @author Administrator
*
*/
private static class UTF8PostMethod extends PostMethod {
public UTF8PostMethod(String url) {
super(url);
}
@Override
public String getRequestCharSet() {
return "UTF-8";
}
}
}

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le cycle de vie d'un servlet fait référence à l'ensemble du processus depuis la création jusqu'à la destruction d'un servlet, qui peut être divisé en trois étapes : 1. L'étape d'initialisation, appelant la méthode init() pour initialiser le servlet. 2. L'étape d'exécution (traitement des requêtes) ; le conteneur demandera de créer un objet ServletRequest représentant une requête HTTP et un objet ServletResponse représentant une réponse HTTP, puis les transmettra en paramètres à la méthode service() de la phase de destruction du Servlet ;

Le nom complet de Servlet est « Java Servlet », ce qui signifie petit programme de service ou connecteur de service en chinois. Il s'agit d'un programme exécuté sur un serveur Web ou un serveur d'applications. Il sert de requête provenant d'un navigateur Web ou d'un autre client HTTP. base de données sur le serveur HTTP ou La couche intermédiaire entre les applications. Servlet a la particularité d'être indépendant de la plateforme et du protocole. Sa fonction principale est de parcourir et de générer des données de manière interactive et de générer du contenu Web dynamique.

Il existe deux manières d'implémenter la gestion de session distribuée dans JavaServlet : 1. Réplication de session : copiez les données de session sur chaque serveur. 2. Distribution de session : utilisez un service de stockage centralisé pour stocker les données de session et y accéder à partir de plusieurs serveurs. Les méthodes d'implémentation spécifiques sont les suivantes : la réplication de session configure true dans les données de session Web.

JavaServlet peut être utilisé pour : 1. Génération de contenu dynamique ; 2. Accès et traitement des données ; 3. Traitement de formulaires ; 5. Gestion de sessions ; Exemple : créez un FormSubmitServlet pour gérer la soumission du formulaire, en prenant le nom et l'adresse e-mail comme paramètres et en redirigeant vers success.jsp.

Pile technologique de développement JavaWeb : maîtrisez JavaEE, Servlet, JSP, Spring et d'autres technologies utilisées pour le développement Web. Avec le développement rapide d'Internet, dans le domaine actuel du développement logiciel, le développement d'applications Web est devenu une exigence technique très importante. En tant que langage de programmation largement utilisé, Java joue également un rôle important dans le domaine du développement Web. La pile technologique de développement JavaWeb implique plusieurs technologies, telles que JavaEE, Servlet, JSP, Spr

Le servlet est une technologie très couramment utilisée dans le développement d'applications Web Java. Cependant, certaines erreurs de servlet se produiront inévitablement au cours du processus de développement. Comment résoudre et éviter les erreurs de servlet est devenu un problème majeur pour de nombreux développeurs Java. Cet article présentera quelques erreurs courantes de servlet et leurs solutions basées sur l'expérience personnelle et les informations associées. ClassNotFoundException Lorsque nous essayons de charger une classe, si la classe n'existe pas ou n'est pas accessible au système,

Dans le monde du développement Web Java, la compréhension de l'interface HttpSession est essentielle pour créer des applications Web dynamiques et réactives. Dans cet article, nous explorerons ce qu'est l'interface HttpSession, comment elle fonctionne et pourquoi elle joue un rôle crucial dans la spécification Servlet. Qu'est-ce que l'interface HttpSession ? À la base, l'interface HttpSession est un composant fondamental de l'API JavaServlet, qui permet aux développeurs Web de suivre la session d'un utilisateur sur plusieurs requêtes HTTP. Lorsqu'un utilisateur accède à une application Web pour la première fois, une session unique est créée pour représenter son interaction. Cette session permet à l'application de maintenir l'état entre les requêtes et de mémoriser les informations sur

1. Le travail de préparation est comme indiqué ci-dessous. Tout d'abord, créez chaque fichier selon vos besoins. Si vous pensez qu'il peut fonctionner, vous vous trompez (j'étais coincé ici au début de la structure du projet). idée pour créer des applications de servlet, vous devez Vous constaterez que le web.xml fourni ici n'est pas complet du tout. Veuillez utiliser le code suivant pour inclure la balise de servlet mentionnée ci-dessus //Ajoutez ici le code de la balise de servlet mentionnée ci-dessus 2. Le problème avec l'encodage du fichier compilé est le même que ci-dessus. Je voulais le compiler au début, mais une erreur a été signalée. La raison ici est que javac lira le code du fichier source en fonction de l'encodage de votre système d'exploitation et que mon ordinateur utilise par défaut GBK. , mais nous écrivons tous ces codes sources dans le Bloc-notes, et le Bloc-notes utilise UTF-8 par défaut.
