Электронный магазин на Java и XML

         

JSP-страница UpdateFullfilment...



Листинг 5.32. JSP-страница UpdateFullfilment (UpdateFullfilment.jsp)

<%@ page import="java.io.*,com.XmlEcomBook.Chap05.*" %>
<html>
<head>
<title>
Update Complete</title>
</head>
<body>
<% String tracking = request.getParameter( "tracking" );
String dateSent = request.getParameter( "date_sent" );
String dir = request.getParameter( "dir" );
String filename = request.getParameter( "file" );
String email = request.getParameter( "email" );
String id = request.getParameter( "id" );
String auth_code = request.getParameter( "auth_code" );
String priceString = request.getParameter( "price" );
double price = Double.parseDouble( priceString );
File inFile = new File( dir, filename );
File outFile = new File( dir, filename + ".tmp" );


BufferedReader reader = new BufferedReader ( new FileReader( inFile ) );
FileWriter writer = new FileWriter( outFile );
String line; while( (line = reader.readLine()) != null ) { String newLine = replace( line, "NOT_SENT_YET", dateSent );
newLine = replace( newLine, "NO_TRACKING_NUMBER", tracking );
writer.write( newLine + "\n" );
} reader.close();
writer.close();
inFile.renameTo( new File( dir, filename + ".old" ) );
outFile.renameTo( inFile );
Emailer.sendShipped( email, id );
TestPaymentAuthorizer.capture( auth_code, price );
%>
<p>
The fulfillment was updated with the new information.</p>
<a href="OrderDateSelector.jsp">
Back to date selection</a>
</body>
</html>
<%! String replace( String s, String oldString, String newString ) { int pos = s.indexOf( oldString );
String newLine = s; if( pos != -1 ) { newLine = s.substring( 0, pos );
newLine += newString; newLine += s.substring( pos + oldString.length() );
} return newLine; } %>

Листинги программ, приведенные в этой главе, показывают, как можно реализовать необходимые для работы магазина функции по обработке заказов и составлению счетов. Чтобы использовать эти программы в реальном магазине, необходима некоторая доработка. Наибольшие изменения будут касаться требований безопасности. JSP-страницы, которые задействуются в процессе ввода информации клиентом, должны использовать не простой протокол HTTP, a HTTPS. Далее, в нашем примере информация о клиентах хранилась в незашифрованном файле в той же системе файлов, в которой работает web-сервер магазина. В идеале вся персональная информация о клиентах должна храниться в зашифрованном, безопасном источнике данных на изолированном сервере, к которому нет доступа из Интернета.

С другой стороны, необходимо заменить класс, отвечающий за проверку номеров кредитных карт, на класс, который будет взаимодействовать с реальным поставщиком услуг по обработке. Но в процессе тестирования системы, на том этапе, когда еще не нужно взаимодействие с реальным поставщиком, можно воспользоваться приведенным здесь классом.



Содержание раздела