A. java URL傳參數據丟失問題請教
可能是緩存問題。瀏覽器在根據你的url查找資源的時候,默認會從緩存中獲取。兩者的盯帆url一致的時凱困雹候,直接取。所以為了避尺族免這種情況,你可以在參數中加上一個隨機數,這樣,每次的url不一樣。這樣應該可以達到每次都能取到值的目的。嘗試一下,親。
B. java遠程請求url地址,並且要求傳遞參數,應該怎麼實現
public String getHTML(String httpUrl, String Charset) {
String html = "";
try {
URL url = new URL(httpUrl.toString());
StringBuffer document = new StringBuffer();
try {
URLConnection urlCon = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(
new InputStreamReader(urlCon.getInputStream()));
String Result = "";
while ((Result = reader.readLine()) != null) {
document.append(Result);
// System.out.println(Result);
}
html = document.toString();
} catch (IOException e) {
html = "服務未響應";
}
} catch (MalformedURLException e) {
html = "不支持的協議";
}
return html;
}
C. 如何解決 jsp 中url傳值的中文亂碼問題
在jsp中,如果在url中傳遞中文時會出現亂碼,其實解決方法非常簡單: 第一步:編碼(以傳遞的參數為str為例) 在傳遞數據前將str進行編碼Java.net.URLEncoder.encode(str) 第二步:解碼 在獲取數據端將得到的數據進行解碼 new String(str.getBytes("ISO8859_1"))
簡單示常式序如下:
<%@ page contentType="text/html;charset=gb2312" %
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("編碼的是這里","GB2312")%"點擊這里</a<%//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null){str=request.getParameter("url");
//下面是解碼
str=java.net.URLDecoder.decode(str,"GB2312");
D. javaservlet向js傳值,我用的url參數去傳值,但是這樣值就顯示在地址欄了,我不想讓它顯示怎麼辦
用url傳值,只能顯示出來。
你可用加密方式碰彎。
如
對握吵薯傳的值,加2,乘9
解密時,再除9,段者減2
E. java中把url當作一個參數傳到後台
你也可以在jsp頁面把這個url封裝到後台對象的屬性中傳過去。
F. java 接收url中參數帶 % %傳過來的值
%是URL中的轉義符,比如 %20 表示空格,如果你要表達一個%本身,需要使用 %25表示。
js中可以使用 escape() 來編碼。
G. java 中 url地址欄里傳的數字值,如何加密
現在很多加密演算法的 比如你可以使用XXTea加密。前端使用post請求,請求之前將你要傳的參數 組合成一個json格式,之後進行XXTea加密,加密完之後 將加密得到的字元串放到post 請求數據中。後台加一個攔截器,拿到你的請求地址以及加密字元串,然後將字元串解密 得到一個map,再通過request得到的ParamRequestWrapper 將解密後的參數放回去,這樣你的方法就可以照常拿到數據了。
H. 怎樣java中傳值給頁面
從 servlet轉到 jsp不外乎兩種方法,重定向 和 url轉發
1、重定向 ( Redirect):是路徑的跳轉,內容和 url都改變。不允許帶 request參數( session參數可以),即不允許在 servlet里給 request對象使用setAttribute方法傳給下一頁面。在 servlet里使用 response.sendRedirect(url) 方法。注意這里的 url前不帶斜線 /,如 response.sendRedirect(」test.jsp「)
2、url轉發 ( Forward):是頁面的跳轉,頁面內容發生改變,url不變。可以帶 request和 session參數。在 servlet里使用 getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而這里的 url前需要帶斜線 /,如getServletConfig().getServletContext().getRequestDispatcher(」/test.jsp「).forward(request, response)
servlet使用RequestDispatcher到jsp頁面
String url="/EShop.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.forward(req, res);
servlet重定向jsp,並將數據發送到別一個JSP中:
request.setAttubute("messages",aaa);
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/jsp/testbean.jsp");
requestDispatcher.forward(request,response);
3.7、Servlet跳轉
從JSP跳轉到Servlet可以實現,通過表單提交或超鏈接可以做到,但是現在如果從一個Servlet跳轉到JSP呢?
• HttpServletResponse對象,此對象可以完成跳轉:public void sendRedirect();
JumpServlet.java:
package org.lxh.demo ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import java.io.* ;
public class JumpServlet extends HttpServlet{
public void init() throws ServletException{
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
resp.sendRedirect("jump.jsp") ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
this.doGet(req,resp) ;
}
public void destroy(){
}
};
web.xml:
<servlet>
<servlet-name>jump</servlet-name>
<servlet-class>org.lxh.demo.JumpServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jump</servlet-name>
<url-pattern>/jump</url-pattern>
</servlet-mapping>
以上實現了跳轉的功能,但是跳轉之後,發現地址欄已經改變了,所以此跳轉稱為客戶端跳轉。如果此時假設一個Servlet要向JSP中傳遞屬性,那麼應該使用session范圍。
JumpServlet.java:
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
request.getSession().setAttribute("name","hello") ;
resp.sendRedirect("jump.jsp") ;
}
jump.jsp:
<h1><%=session.getAttribute("name")%></h1>
此時,發現可以通過session屬性范圍傳遞內容,但是如果現在傳遞的內容很多,而程序中使用session范圍的話則肯定會帶來額外的性能降低,但是此時,這些值只使用一次顯示,那肯定沒有必要使用session對象,最好使用request范圍。如果request屬性范圍也有一個限制,必須是伺服器端跳轉,在JSP中使用<jsp:forward>語句完成,但是在servlet中呢?就只能使用RequestDsipatcher介面完成,實際上<jsp:forward>語句也是使用包裝了此種應用,既然RequestDispatcher是一個介面,所以必須通過其他方式實例化,通過request對象完成。
JumpServlet.java:
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
req.setAttribute("name","hello") ;
// 准備跳轉到此頁面
RequestDispatcher rd = req.getRequestDispatcher("jump.jsp") ;
// 把所有的請求向下繼續傳遞
rd.forward(req,resp) ;
}
注意:
當需要傳遞request屬性范圍的時候才使用伺服器端跳轉。如果不需要傳遞,則可以選擇任意的跳轉方式。
但是一般情況下都使用RequestDispatcher進行跳轉,而且一定要記住的時候,跳轉之後頁面地址不會有任何的變化。
I. java URL 添加參數的幾種簡單方式
主要有三種方式,先給大家第一種managed-bean,必須 scope設置為request
<managed-bean>
<managed-bean-name>nameBean</managed-bean-name>
<managed-bean-class>demo.NameBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userName</property-name>
<value>#param.name</value>
</managed-property>
...
....
</managed-bean>
第二種方式:缺點是無法往後台傳數據,當然你用javascript做一下動作也可以
<h:inputHidden id="userName" value="#{nameBean.userName}"/>
第三種方式,是直接在bean中獲得,我認為這種應該是最實用、保險的方式。
public static String getRequestParameter(String name) {
return (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);
}