Servlet query string
Is it possible to hide the servlet query string from the browser,
eg., http://localhost:8080/servlet1?a=10&b=20$c=30
If we click on this URL, the whole URL will be displayed in browser, I want to hode the URL, is it possible,
Thanks in advance
sam
use the post method in the form submitting to your
servlet. query string is not displayed for post
requests.Hi thanks for ur reply,
I have used post method on different senario,
I will explain my problem, I am not using any forms in my jsp
"10/10/2001" this is the hiper link, when I click this link,
this should invoke a servlet, see the code below,
<td align="right"><a href="myServlet?a=1&b=<%=m.getb()%>&Date=<%= bdate %>">10/10/2001</a> ?</td>
if U click the above link, this will show the whole URL in the browser,
but, I want hide the whole query string, is this possible
"http://localhost:8080/myServlet/" - no query string to be shown,
thanks
Hari
Similar Messages
-
C:import tag - Query string while calling servlet from JSP
Hi,
From my JSP I am calling a servlet to write back to the response stream of the JSP. From the JSP i am trying to pass some values into the query string as follows
<%
String strGetParameters = "/servlet/MyServlet?path=" + strPath;
%>
<pre><c:import url="<%=strGetParameters%>" /></pre>In the servlet I try to get the path from the query string by using
request.getParameter("path")But in the servlet the query string doesnt have the "path" parameter that I added in the strGetParameters string (in the JSP).
Am i missing something? Do i have to use something else or do something else?
Any help is appreciated.I've taken some time to do a simple test and it just works.
Here is the test code, it was tested in Java EE 5 + JSTL 1.2 + Tomcat 6.
JSP<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<html>
<head>
<title>Test</title>
</head>
<body>
<pre>
<c:import url="myServlet?param1=foo¶m2=bar">
<c:param name="param3" value="meep" />
<c:param name="param4" value="waah" />
</c:import>
</pre>
</body>
</html>MyServlet (mapped on "/myServlet")package mypackage;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
String param3 = request.getParameter("param3");
String param4 = request.getParameter("param4");
String output = param1 + ", " + param2 + ", " + param3 + ", " + param4;
response.getOutputStream().write(output.getBytes());
}All parameters gets printed. -
Null query string in servlet filter with OC4J 10.1.3.1.0
I have a strange problem with OC4J 10.1.3.1.0. In the servlet filter, while requesting the querystring with HttpServletRequest.getQueryString the result is null, even if it is verified with a sniffer that that query string is there. This happens only with certain requests. The query string is long but nothing very special otherwise.
Any ideas what might be wrong?
Thanks,
MikaI got the same problem. I tried in others application servers alternatives and it works. By now i have to change links like this "http://localhost:8888/SIVIUQ/LoadIndex.portal?test=1" for forms using javaScript to send the parameters corresponding to the button pressed. To use buttons instead links is not the better solution due to usability. Any suggestion to solve this problem?
Thanks
Javier Murcia
Yo tengo el mismo problema. He intentado con otros servidores de aplicaciones y funciona. Por ahora tengo que cambiar links como "http://localhost:8888/SIVIUQ/LoadIndex.portal?test=1" por formularios, usando javaScript para enviar los parametros correspondientes al boton presionado. Usar botones en vez de links no es la mejor solucion debido a usabilidad. ¿Alguna sugerencia para resolver este problema?
Gracias
Javier Murcia -
Can a single quote be used at the beginning of a query string parameter
Hi all,
I am a relative newbie and have a newbie question.
Can a single quote be used at the beginning of a query string parameter passed to a jsp page? Are there any inherant problems with this? Is there a comprehensive list of characters that must be escaped in a query string parameter?
Example: http://mysite.com/myjsp.jsp?param1='nghdh
ThanksYou'll have to escape most non-letter characters before you can pass them as a URL. I don't know if it's necessary for a single quote, but better safe than sorry.
Either use java.net.URLEncoder(...) or use javax.servlet.http.HttpServletResponse.encodeURL(String). I wouldn't recommend using unescaped characters in your URLs, that might cause pretty funny behavior that's sometimes hard to trace back. Don't worry about decoding it, your JSP/Servlet container will do it when you call javax.servlet.http.HttpServletRequest.getParameter(String). -
How to manage Locale info in the URL path, but not the query string
We are building an application using Struts 1.1 and Tiles, on Oracle Application Server 10.1.3.3...
I know this is a strange question... but we have a requirement to represent the locale info in the URL string using one of the following options:
option 1: /eng/page.do?id=2 for english.../fra/page.do?id=2
option 2: /page-eng.do?id=2 for english.... and /page-fra.do?id=2 for french
We need to represent the 3 letter ISO lang code either in the directory structure, or suffix the page name (in our case, the struts action name)... we cannot replicate this using a parameter in the query string. I know this is odd, but that is what we are told to implement.
Is there any robust way of implementing either option in Struts 1.1, JSP, JSTL etc...?
Currently, we are looking at using a servlet filter to intercept the HTTP requests, parse the URL string, and extract the ISO lang value, and set locale and forward on the request.
This poses a few problems... adding additional action mappings (page-eng... page-fra... page) to our struts-xml.config file to handle lang permuations... but the biggest issue is all the embedded html:link action values throughout our code...
Because all our public facing URLs must comply with the rule, we need to change the html:link action to point to a different action, based on locale.
Very inefficent, and I'm sure not industry standard best practice... we are using Tiles, and resource bundles for all our labels etc... but fall short in meeting this rule with regards to URLs and locale.
Any advice or tips etc.. is greatly appreciated.The filter option sounds like a good solution. So it can receive the urls and parse them appropriately.
You just need to take it one step further.
Additional actionmappings in your struts-config should not be necessary.
Filter:
- analyses the url and sets the appropriate locale
- adjusts the url such that the next level of the chain does not have to know anything about the locale being encoded in the url string.
Thus your struts classes and mappings can remain unchanged
/eng/page.do or /fra/page.do once through the filter should just look like /page.do to struts.
That should get rid of half of your headache.
Next the issue of generating urls.
There are two approaches I can see here
1 - use the filter approach again, this time with some post processing. Gather the generated HTML in a buffer, and do a find/replace on any urls generated, to put the locale encoding into them.
2 - Customise struts to produce urls in this format. This would involve the html:link tag, and the html:form tag at the least (maybe others?). Get the source code for struts, and grab the html:link tag code. Extend that class to generate urls as you want them to be generated. I think you would need to extend the class org.apache.struts.taglib.html.LinkTag and override the protected method calculateURL. You would then have to edit/modify the struts-html tld to point the link tag at your classes rather than the standard ones.
Option 1 is architecturally good because it gives you a well defined layer/border between having the locale encoded in the url, and not having it there. However it involves doing a find/replace on every html going out. This would catch all urls, whether generated by html:link tag or not.
Option 2 requires customising struts for your own requirements, which may be a bit daunting, but has the advantage of generating the urls correctly without the extra overhead involved with option 1. Of course you would have to ensure that ALL urls are generated with the html:link tag.
On reflection, I think option 1 is preferable, as both easier and quicker to implement, and doing a better separation in the architecture.
Cheers,
evnafets -
Hi,
I was wondering if anyone has attempted to parse query strings that contain ampersands (&) or equals (=) in the parameter values.
At the moment we have some working code to do this but it is kind of messy and complicated. If possible we would like to make use of Java classes to do this for us. I was thinking along the lines of using some or all of:
Hashtable javax.servlet.http.HttpUtils.parseQueryString( String s)
String java.net.URLDecoder.decode( String s)
String java.net.URLEncoder.encode( String s)Has anyone managed to implement a parser using these classes? Basically the problem is determining where to split the name/value pairs when the delimiters may be included in the values.
Just to give you an idea, try parsing the following URL
http://someserver/servlet?parm1=val&ue&parm2=val=ue
CraigHere's the thing:
If submitting by form then req.getParameter(name) works fine for both types of parameter values.
If submitting by link then req.getParameter(name)
- Works for parameters with '=' in them
- Doesn't work for values with '&' in them.
I actually need to be able to parse a query string (the parameter list part of a link). However, it isn't specific to submission processing.
I want to be able to parse the string generically regardless of whether it comes from the web or whether I call it from within the code.
In short, I want to be able to take a string like Param1=Val&ue&Param2=Val=ue and split it into name/value pairs from anywhere in the code. -
Query Strings in Request Dispatcher Paths (PLT.16.1.1)
I'm having trouble using query strings in a request dispatcher include to a servlet.
I'm spitting debug out, and it looks like I'm calling:
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/myServlet?myparam=myparamValue");
And myparam isn't being set for myServlet.
The same URL ("http://myhost:myport/myPortal/myServlet?mayparam=mayparamValue)
runs fine standalone....I'm not sure of the exact dates (either this month or the next). But
JSR168 will be supported in the service pack.
Subbu
T-Bone said the following on 11/18/2003 09:23 AM:
Subbu Allamaraju <[email protected]> wrote:
There is a known bug in WLS's servlet container that results in this
behavior. Please contact support if you need an expedited solution.Thanks, they said to wait for SP2 sometime end of November.
Can you tell me when it will be available?
Also, when will JSR-168 v1.0 be supported?
Subbu
T-Bone said the following on 10/26/2003 03:14 PM:
I'm having trouble using query strings in a request dispatcher includeto a servlet.
I'm spitting debug out, and it looks like I'm calling:
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/myServlet?myparam=myparamValue");
And myparam isn't being set for myServlet.
The same URL ("http://myhost:myport/myPortal/myServlet?mayparam=mayparamValue)
runs fine standalone.... -
Passing a parameter in the query string
When a string containing a �+� is passed as a parameter in the URL in the query string through a POST request, it is interpreted as two strings separated by a �+� and thus when the string is retrieved through a request.getParameter (),it returns the string with a space in place of the �+� sign.
eg:
String dblink = "/TCE/servlet/LoginService?name="+vSystemAccount.getAccountName()+"&password="+pw;
Here the parameter pw contains a '+' sign which when retrieved by a request.getParameter() returns the parameter with a space in place of the '+' sign.How can i prevent this??Hi,
In post method , the data is sent as request message body. The data is passed as query string in Get method not in Post method.
Could you please explain your question again ?
bye for now
sat -
Number of Items in the Query String
Hello Friends
I am making a servlet in that I am facing a problem.
The Problem is -
I have a servlet in which I take feed back from user in a text field.
There is a text field for each row. All the the text fields have same name.
Now I made another servet in which I am getting the output from this servlet.
I want to know how many feedback variables are in the Query String (because each feedback text has the same name feedback) which is passed from one servlet to another.
with thanks
VishwajeetTry using HttpServletRequest.getParameterValues:
int n = request.getParameterValues("feedback").length;
Russ Cole -
Jsp:forward param not getting included in my query string
Hi,
On a particular JSP page, mine.jsp, I am forwarding to a servlet ...
<jsp:useBean id="HotelResortDBBean" class="com.lvcva.database.HotelResortDBBean" scope="request" />
<jsp:forward page="/meetings/meeting-venues/results">
<jsp:param name="sqftRange" value="${empty param.meetingsqft ? -1 : param.meetingsqft}" />
</jsp:forward>This forwards to a servlet, when I query "request.getQueryString", it comes up null. However, when I enter the URL, "mine.jsp?sqftRange=-1", the query string returns "sqftRange=-1" as expected. Can someone tell me what I'm doing wrong in the above that is causing the jsp:param to not be added to the query string?
- Davea forward does not create a new request, and thus the query string is not altered. If you want the query string to change, use a redirect in stead.
note: even though the query string does not change, the new parameter IS added to the HttpServletRequest object, so you can still fetch the new parameter from it even with the forward. -
How to pass a Vector as a Query String to a URL
is there a way to pass a vector as a query string in a URL in Java. If so how?
thanks in advanceYeah may need some more detail, but if you are trying to pass the Vector object itself from one JSP/Servlet to another, you can simply put the object in one of the scopes like session or request then forward page on.
e.g.
FirstServletVector things = new Vector();
things.add("one thing");
things.add("another thing");
request.setAttribute("objThings",things);
getServletContext().getRequestDispatcher("/NextServlet").forward(request, response);SecondServletVector things = new Vector();
Object o = request.getAttribute("objThings");
if(o instanceOf Vector) things = (Vector)o;Hope that helps!! -
How to send query string to OSB Business Service?
Hi
I need to call a Servlet which is accepting http get request.
My system design is
I have a web service interface that I need to expose to Front end application. I am using Proxy service for this.
Then I have a servlet at end system and using Business service to send request to servlet.
I need to pass username, password, jndi context and payload using url encoding.
What all steps do I need to follow for this? How to create query string , which variable I need to play with inbound or outbound?
I have gone through all the answers on this forum but could not understand much.
Thanks
VibhorHii
I am still unable to send http get request to end service.
In flow I have setted $outbound/transport/request-http/query-string too.
But I have to send request with url encoding.
How to encode query string and how can I check whether my request is going correctly or not, is there any variable in which complete url would be stored.
Thanks
Vibhor
Edited by: Vibhor Rastogi on Sep 15, 2010 9:49 AM -
How to disable query-string evaluation in OSB proxy service?
OSB 10.3 proxy service evaluates the query String ?WSDL (are there more such parameters?). Usually the assigned WSDL will be returned this way.
I want to use OSB as simple HTTP-proxy. There is no WSDL assigned. The proxy service should simply pass all parameters to the request pipeline. This works fine for parameters in general but not for WSDL. This produces the exception below.
Does anyone have an idea how to disable this query string evaluation within OSB proxy service?
Thanks
Daniel
<25.11.2009 15:43 Uhr MEZ> <Error> <WliSbTransports> <BEA-381304> <Exception in HttpTransportServlet.service: java.io.IOException: This service is not associated to a wsdl
java.io.IOException: This service is not associated to a wsdl
at com.bea.wli.sb.transports.http.ResourceRequestProcessor.securedInvoke(ResourceRequestProcessor.java:108)
at com.bea.wli.sb.transports.http.ResourceRequestProcessor.process(ResourceRequestProcessor.java:61)
at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.handleMetadataRequest(HttpTransportServlet.java:314)
at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:215)
at com.bea.wli.sb.transports.http.HttpTransportServlet.service(HttpTransportServlet.java:133)
at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)Daniel,
http://hostServer/contextpath?WSDL is common way of retrieving WSDL for service whcih supports one. The case you are suggesting is if the service does not have any wsdl associated, then it is good practice that caller be notified appropriately which is being done by OSB. OSB is indicating that the service for which we have used ?wsdl has no wsdl associated.
I guess there is no way we can disable this feature for un-typed OSB services (services which doesn't have wsdl associated). Any reason why would we don't want exception when '?wsdl' is used?
Manoj -
SSOServlet - query string parameters being lost
Hi,
We recently upgraded ALUI from version 5.04J to 6.1. After the upgrade, we noticed one issue with the redirection. When the user is not logged in & accesses a secure commnity, he/she is redirected to the SSO Servlet. For instance, if the following URL is accessed
/portal/server.pt?open=512&objID=326&PageID=0&cached=true&mode=2&userID=2&CommunityID=326
the user should be redirected to (as in version 5.04J)
/portal/SSOServlet?open=512&objID=326&PageID=0&cached=true&mode=2&userID=2&CommunityID=326
Instead the user is redirected to /portal/SSOServlet?
(without the query string)
Does anyone know why?
Thanks,
DevI've tired doing this and it did not work for me. However, I was able to find a solution that helped me a whole lot.
After running all test runs - I found a solution that helped me take off the extra parameters that Eloqua adds to all URL's.
I created my urls without placing "http://" or "https://" or http://www." or "https://www." and that helped take off all tracking.
Re: Use of tinyUrl -
HELP INPUT TYPE = hidden values SEEN IN URL QUERY STRING!!!
Trying to do session management using hidden fields.
The fields that are suppose to be hidden show up in the query string of the URL.
I have included the code, the output to the web page
and the URL with the "hidden" fields please help.
HIDDEN FIELDS IN URL QUESRY STRING
http://localhost:8080/myApp/servlet/Servlet077?firstName=Sandra&item=Michael
WEB PAGE OUTPUT
Enter a name and press the button
Name:
Your list of names is:
Michael
Sandra
JAVA SOURCE CODE
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Servlet077 extends HttpServlet{
public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException{
//An array for getting and saving the values contained
// in the hidden fields named item.
String[] items = req.getParameterValues("item");
//Get the submitted name for the current GET request
String name = req.getParameter("firstName");
//Establish the type of output
res.setContentType("text/html");
//Get an output stream
PrintWriter out = res.getWriter();
//Construct an HTML form and send it back to the client
out.println("<HTML>");
out.println("<HEAD><TITLE>Servlet07</title></head>");
out.println("<BODY>");
//Substitute the name of your server or localhost in
// place of baldwin in the following statement.
out.println("<FORM METHOD=GET ACTION="
+ "\"http://localhost:8080/myApp/servlet/Servlet077\">");
out.println("Enter a name and press the button<P>");
out.println("Name: <INPUT TYPE=TEXT NAME="
+ "\"firstName\"><P>");
out.println("<INPUT TYPE=submit VALUE="
+ "\"Submit Name\">");
out.println("<BR><BR>Your list of names is:<BR>");
if(name == null){
out.println("Empty<BR>");
}//end if
if(items != null){
for(int i = 0; i < items.length; i++){
//Display names previously saved in hidden fields
out.println(items[i] + "<BR>");
//Save the names in hidden fields on form currently
// under construction.
out.println("<INPUT TYPE = hidden NAME=item "
+ "VALUE=" + items[i] + ">");
}//end for loop
}//end if
if(name != null){
//Display name submitted with current GET request
out.println(name + "<BR>");
//Save name submitted with current GET request in a
// hidden field on the form currently under
// construction
out.println("<INPUT TYPE = hidden NAME=item "
+ "VALUE=" + name + ">");
}//end if
out.println("</body></html>");
}//end doGet()
}//end class Servlet071. Change <form name=xxx action="your_servlet" mathod="Get"> to
<form name=xxx action="your_servlet" mathod="POST">
2. Add the following lines of code to your servlet.
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req,res);
return;
}Sudha
Maybe you are looking for
-
Airport express no longer being recognized
I previously had my home network set up and working with no problems. I have an airport base station and I have an airport express that I use to print wirelessly. After one of the recent updates, my airport express was no longer recognized by the air
-
We have 2 load balanced application servers that map drives with programs on them for users from a central server that are giving the warning "We can't verify who created this file. Are you sure you want to run this file?". Basically how it works is
-
HT1688 How can I make the keyboard go away in an app
How can I make the keyboard go away in an app
-
OS slow to respond after upgrading to osx 10.8.3
Hi , I am facing issues after upgrading the mac book pro 2011 late model to osx lion 10.8.3 . Battery draining too fast. I was just reading an ebook . not connected to internet . Safari is slow to respond/stuck. itunes stuck . couldnt even open the t
-
Spotify won't open on Windows 8.1
Hi! A day ago, my Spotify desktop app was working fine, but now today, I am experiencing issues where Spotify doesn't open at all when I click the icon on the desktop, and when I click it on the taskbar, the icon glows like it's open, then fades and