Jeg ved godt du har brugt meget tid på denne tråd nu, men jeg poster lige min koder som der er indtil videre. Det er ikke for at du skal kigge alt igennem, men springer dig noget i hovedet som er helt forkert?
JSP:
<td>
<form method="POST" action="CustomerController">
<input type="text" name="username" size="6">
</form>
</td>
<td class="formtext">Kode</td>
<td>
<form>
<input type="text" name="password" size="6">
</form>
</td>
JAVA: (har lige skrevet XXX ved key, men har key)
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.Customer;
import util.Constants;
import dk.brics.xact.XML;
public class CustomerController extends HttpServlet {
static String urlCreateCustomer= "
http://services.brics.dk/ (...)"
private static String key="XXXXXXXXXXX";
private static int messagecode=0;
public CustomerController() {
super();
XML.getNamespaceMap().put("w", "
http://www.cs.au.dk/ (...));
XML.getNamespaceMap().put("h", "
http://www..w3.org/ (...));
}
public void init() {
ServletContext c = getServletContext();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("customerName")+"no");
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String login= request.getParameter("login");
String register= request.getParameter("register");
System.out.println("values:" + username + " " + password+" "+login+" "+register);
//Remember to do the validation stuff
if(username!=null && password!=null)
{
try{
if(register.equalsIgnoreCase("Register"))
{
sendData(request, username, password);
getServletContext().getRequestDispatcher("/shoppingcar?message="+messagecode).forward(request, response);
}
if(login.equalsIgnoreCase("Login")){
//do the login stuff
loginCustomer(request, username, password);
}
}
catch(Exception e){
e.printStackTrace();
}
}
else{//redirect with an error message
response.sendRedirect("shoppingcar?message=1");
}
}
void loginCustomer(HttpServletRequest request,String username, String password) throws Exception{
}
void sendData(HttpServletRequest request,String username, String password) throws Exception{
Customer aux;
HttpURLConnection connection= (HttpURLConnection)new URL(urlCreateCustomer).openConnection();
connection.setDoInput(true);
connection.setDoOutput(true); //Only if you expect to read a response..
connection.setUseCaches(false); //Highly recommended...
connection.connect();
XML xml = XML.parseTemplate(
"<w:createCustomer>" +
"<w:shopKey><[SHOPKEY]></w:shopKey>" +
"<w:customerName><[USERNAME]></w:customerName>" +
"<w:customerPass><[PASSWORD]></w:customerPass>" +
"</w:createCustomer>")
.plug("SHOPKEY", key)
.plug("USERNAME", username)
.plug("PASSWORD", password);
xml.toDocument(connection.getOutputStream(), "UTF-8");
XML resp = XML.parseDocument(connection.getInputStream());
if (resp.has("w:customerID")){
int id= resp.getNumber("w:customerID").intValue();
System.out.println("id="+id);
aux=new Customer(id, username);
setSessionData( request,aux);
messagecode=2;
}
else if (resp.has("w:usernameTaken"))
System.out.println("the username was repeated"); // show the error using the controller look above... for example shoppingcar?message=3
else
throw new RuntimeException("Unknown server response");
}
public void setSessionData(HttpServletRequest request, Customer aux) {
request.getSession().setAttribute(Constants.CUSTOMER_ID, aux.getId());
request.getSession().setAttribute(Constants.CUSTOMER_NAME, aux.getName());
}
}
XML:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns="
http://java.sun.com/xml/ns/javaee" xmlns:web="
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>rejser</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>java</display-name>
<servlet-name>java</servlet-name>
<servlet-class>java</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>java</servlet-name>
<url-pattern>/java</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>login</display-name>
<servlet-name>login</servlet-name>
<servlet-class>login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>CustomerController</display-name>
<servlet-name>CustomerController</servlet-name>
<servlet-class>CustomerController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CustomerController</servlet-name>
<url-pattern>/CustomerController</url-pattern>
</servlet-mapping>
</web-app>
Jeg ved godt der er meget, men bare om der er noget der er helt hen i verdet?